电熨斗厂家
免费服务热线

Free service

hotline

010-00000000
电熨斗厂家
热门搜索:
成功案例
当前位置:首页 > 成功案例

科技-迅雷X的“快速申请磁盘空间”是什么原理?

发布时间:2021-11-01 11:04:29 阅读: 来源:电熨斗厂家

【逐日科技网】 针对许多用户反馈创建文件较大的下载任务时,可能出现磁盘繁忙的问题。迅雷X10.1.16版本提供了快速申请磁盘空间的新方式,可以避免由于申请磁盘空间酿成的磁盘繁忙违章建筑有年限吗。那么快速申请磁盘空间是什么原理?现在迅雷官方给出了解答。

这个功能推出后,引发了部分用户的好奇,想要更深入的了解这个功能。那得从微软推出Windows Vista引发的1个问题说起。

问题起因:

2006年11月,Windows Vista发布,随之带来了用户帐户控制功能(User Account Control,简称UAC)

UAC功能对磁盘的权限控制给当时的迅雷带来了1个大麻烦。

没有管理员权限的情况下,申请磁盘空间并进行随机写入时,会触发Windows对所申请的磁盘空间进行初始化操作。

Windows之所以作出这个限制,多是由于Windows的文件系统在删除文件时,并没有真的将磁盘上的文件数据擦除,而是给数据加上已删除标记了事。

但是Windows担心未经用户授权的程序访问到磁盘上被标记为已删除的内容,所以增加了初始化环节,其实就是擦除磁盘上标记为已删除的数据。

这个擦除进程就是把磁盘上对应的区块给写成零。写零这个进程就跟往磁盘里写数据1样,磁盘的写入性能决定了写零的速度。

比如迅雷要下载1个1000MB的文件,那么Windows就会初始化1000MB的磁盘空间,磁盘的写入性能是100MB/s,那么可知Windows对磁盘完成初始化需要10秒。

这10秒内,磁盘的写入性能将会被占用,导致磁盘繁忙,电脑卡顿。而且此时迅雷是没法向磁盘的这个区块写入任何数据的,也就导致迅雷没有任何下载速度。

解决这个问题的关键点,就是要找出1种方法,让迅雷申请磁盘空间时具有管理员权限。

解决方案A:

迅雷为了解决这个问题,首先想到的解决方案是每次启动迅雷都申请管理员权限。

但是,让用户每次启动迅雷都弹1个UAC的提示框,体验实在太差。何况很多用户启动迅雷只是为了打开下载好的文件,其实不进行下载房屋拆迁补偿款太低可以强拆吗。这类死板的做法就被否了。

解决方案B:

这时候候,我们有个比较熟习Windows的开发想到,Windows的系统服务是可以直接获得管理员权限的,迅雷创建1个系统服务,专门用来帮忙申请磁盘空间不就好了吗?

因此迅雷就开发了XLServicePlatform服务,当迅雷需要申请大于100MB的磁盘空间时,就通过这个服务进行申请。

这样1来,就在不弹出UAC提示框的条件下,把问题解决了。

问题再现:

但是最近这段时间,我们发现越来越多的用户反应,用迅雷下载大文件的时候电脑很卡、没速度、磁盘繁忙等问题。

经过跟许多用户远程协助发现,他们的XLServicePlatform服务都被停止了。因此迅雷没法通过服务申请磁盘空间,导致下载大文件时,需要等待Windows初始化磁盘。

奇怪的是,用户都说自己没有手动停止过这个服务。

后来我们发现,这些用户都安装了360安全卫士,经过我们测试发现,360安全卫士的加速功能会建议用户关闭迅雷基础服务,其实就是把XLServicePlatform服务停止了。。。

因此我们就找360安全卫士的人反馈了这个问题,介绍了这个服务对迅雷的重要性,希望360不要把这个服务列为建议关闭。

而且这个服务本身不占什么内存,但是关闭以后,对用户体验的负面影响很大。

经过几轮沟通后,结果就是360安全卫士1直都没有进行更改。。。

解决方案C:

既然很多用户的XLServicePlatform服务会被360安全卫士停止,那么迅雷就需要1个服务不能正常运行时的备份方案。

这个方案就是10.1.16版本上新增的快速申请磁盘空间助手功能,它的原理很简单,就是个独立的进程,在迅雷需要时启动它申请管理员权限,然后帮迅雷申请磁盘空间。

迅雷启动时,检测到本身不具有管理员权限,且XLServicePlatform服务没有正常运行,即判断当前需要快速申请磁盘空间助手帮助申请磁盘空间。但是此时其实不会立刻弹出UAC提示框。

而是当迅雷需要下载大于100MB的文件时,先询问用户选择哪种申请磁盘空间的方式。

如果用户选择快速方式,这时候候才会拉起快速申请磁盘空间助手进程申请管理员权限(此时会弹1次UAC提示框),然后再由它帮迅雷申请磁盘空间。

这个方式虽然要弹1次UAC提示框,但是总好过方案A那种每次启动迅雷都弹,而且作为方案B的备用方案,用户体验也不算太糟。