您好,欢迎访问香山网!

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

分类:虚拟化 浏览数:49 2019-09-05 17:32 IT之家 骑士 编辑: 香香

针对许多用户反馈创建文件较大的下载任务时,可能出现磁盘繁忙的问题。迅雷X10.1.16版本提供了“快速申请磁盘空间”的新方式,可以避免因为申请磁盘空间造成的“磁盘繁忙”。那么“快速申请磁盘空间”是什么原理?现在迅雷官方给出了解答。

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

问题起因:

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

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

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

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

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

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

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

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

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

解决方案A:

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

▲UAC提示框

但是,让用户每次启动迅雷都弹一个UAC的提示框,体验实在太差。何况很多用户启动迅雷只是为了打开下载好的文件,并不进行下载。这种死板的做法就被否了。

解决方案B:

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

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

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

点击分享到:

版权与免责声明:

凡未注明"稿件来源"的内容均为转载稿,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性;


本文地址:http://www.txshc.com/news/2019/09/05/33910588.html

转载本站原创文章请注明来源:香山网