迅雷5补丁的问题
来源:百度知道 编辑:UC知道 时间:2024/06/06 06:54:28
最近网上出现一个文件,用他替换迅雷安装目录中的文件后会减少迅雷的资源占有,对此迅雷官方发布了相关说明.
替换所谓的优化库后,打开任务管理器,看Thunder5.exe,发现内存使用在不停的变化,大概每秒减少一次.
猜测可能通过系统函数SetProcessWorkingSetSize将进程页面交换出物理内存,造成内存占用低的假象.
打开迅雷5,用OllyDbg等调试器调试,在SetProcessWorkingSetSize函数上设置断点,断下后可以看到调用处代码,如图
用C语言表示就是
while(1)
{
Sleep(1618);
SetProcessWorkingSetSize(GetCurrentProcess(, 5920), -1, -1);
}
作用就是每1618毫秒将当前进程(迅雷5进程)物理内存页面交换到虚拟内存.
在程序需要访问这些被交换出物理内存的页面时就会触发页面错误.
操作系统会执行数十万条指令从虚拟内存将页面交换回物理内存,来解决这个页面错误.
而交换回物理内存的页面在1.6秒后又被所谓的优化库交换到虚拟内存.
这个过程不断重复会严重影响程序执行效率,cpu资源会被浪费在这种没有意义的页面交换上.
迅雷在下载时需要频繁读写内存,因此这个库不但没有优化资源,反而会增加磁盘读写次数增加cpu占用率,导致的结果就是下载速度降低,系统速度变慢.而且内存的减少也只是显示减少了,其实是假象.
这个是在论坛上看到的
可是去了官方没看到 这个样子的帖子
所以请教专家解释下
替换所谓的优化库后,打开任务管理器,看Thunder5.exe,发现内存使用在不停的变化,大概每秒减少一次.
猜测可能通过系统函数SetProcessWorkingSetSize将进程页面交换出物理内存,造成内存占用低的假象.
打开迅雷5,用OllyDbg等调试器调试,在SetProcessWorkingSetSize函数上设置断点,断下后可以看到调用处代码,如图
用C语言表示就是
while(1)
{
Sleep(1618);
SetProcessWorkingSetSize(GetCurrentProcess(, 5920), -1, -1);
}
作用就是每1618毫秒将当前进程(迅雷5进程)物理内存页面交换到虚拟内存.
在程序需要访问这些被交换出物理内存的页面时就会触发页面错误.
操作系统会执行数十万条指令从虚拟内存将页面交换回物理内存,来解决这个页面错误.
而交换回物理内存的页面在1.6秒后又被所谓的优化库交换到虚拟内存.
这个过程不断重复会严重影响程序执行效率,cpu资源会被浪费在这种没有意义的页面交换上.
迅雷在下载时需要频繁读写内存,因此这个库不但没有优化资源,反而会增加磁盘读写次数增加cpu占用率,导致的结果就是下载速度降低,系统速度变慢.而且内存的减少也只是显示减少了,其实是假象.
这个是在论坛上看到的
可是去了官方没看到 这个样子的帖子
所以请教专家解释下
尊敬的迅雷用户,您好:
迅雷5现在已经停止维护,升级版本为迅雷7,建议您更新下载迅雷7,旧版本问题会在新版本完善,如果在迅雷7使用中遇到什么问题,请及时与我们反馈解决。
更多疑问,欢迎您向迅雷网络平台提问。
可以不用补丁482577