Board logo

标题: 看到迅雷官方对第三方做的内存优化补丁的评析 [打印本页]

作者: hynos    时间: 2007-10-26 22:41     标题: 看到迅雷官方对第三方做的内存优化补丁的评析

大家不要逼TW2做这种事啊,内存大没关系,内存就是要用的,不要像他们这样造假。

原文如下:
大概在昨天,网上出现一个文件,用他替换迅雷安装目录中的文件后会减少迅雷的资源占有,对此迅雷官方发布了相关说明.
替换所谓的优化库后,打开任务管理器,看Thunder5.exe,发现内存使用在不停的变化,大概每秒减少一次.
猜测可能通过系统函数SetProcessWorkingSetSize将进程页面交换出物理内存,造成内存占用低的假象.



打开迅雷5,用OllyDbg等调试器调试,在SetProcessWorkingSetSize函数上设置断点,断下后可以看到调用处代码,如图

用C语言表示就是

while(1)
{
Sleep(1618);
SetProcessWorkingSetSize(GetCurrentProcess(), -1, -1);
}

作用就是每1618毫秒将当前进程(迅雷5进程)物理内存页面交换到虚拟内存.
在程序需要访问这些被交换出物理内存的页面时就会触发页面错误.

操作系统会执行数十万条指令从虚拟内存将页面交换回物理内存,来解决这个页面错误.

而交换回物理内存的页面在1.6秒后又被所谓的优化库交换到虚拟内存.

这个过程不断重复会严重影响程序执行效率,cpu资源会被浪费在这种没有意义的页面交换上.

迅雷在下载时需要频繁读写内存,因此这个库不但没有优化资源,反而会增加磁盘读写次数增加cpu占用率,导致的结果就是下载速度降低,系统速度变慢.而且内存的减少也只是显示减少了,其实是假象.
作者: china_jian    时间: 2007-10-26 22:45

相信tw不会这么无聊。。
作者: 靖哥哥    时间: 2007-10-26 22:55

楼主请放心
tw从1.x时代就抵制这样的做法
而是在程序本身做优化
直到现在某些浏览器还是这样做的
相关的讨论与说明论坛上也可以搜索的到
花招总会有被揭穿的一天
等用户真正了解了真相
自然会有自己的选择的
作者: uulele    时间: 2007-10-26 23:08

嗯..假象!!
就像一个10公斤的人...不论怎么做 ..他的重力加速度跟我们还是一样的
作者: WinMount    时间: 2007-10-26 23:32

原帖由 uulele 于 2007-10-26 23:08 发表 http://bbs.ioage.com/cn/images/common/back.gif
嗯..假象!!
就像一个10公斤的人...不论怎么做 ..他的重力加速度跟我们还是一样的



如果属实,那种做法就更象一个奸商:比如卖药的
拿着没有功用的仪器、打着专家免费义诊的幌子
甭管有病没病,只要你坐下了,仪器指定会通过“专家”告诉你,这有问题,那有问题
一旦你买了N多吃不死病但是很花RMB的药物之后,就算真的有病,他们就会告诉你没一点儿问题,要不再加两个疗程
作者: ncttour    时间: 2007-10-26 23:53

我在网上也看到了这个内存优化的补丁,没敢用,不知道效果怎么样,现在看来的确是适得其反,谢谢楼主,解决了心中的疑问。
作者: AY    时间: 2007-10-27 01:08

原帖由 靖哥哥 于 2007-10-26 22:55 发表 http://bbs.ioage.com/cn/images/common/back.gif
楼主请放心
tw从1.x时代就抵制这样的做法
而是在程序本身做优化
直到现在某些浏览器还是这样做的
相关的讨论与说明论坛上也可以搜索的到
花招总会有被揭穿的一天
等用户真正了解了真相
自然会有自己的选择的

TW 也有使用 SetProcessWorkingSetSize 把内存转到虚拟的,只是在不同的时机进行。
作者: 靖哥哥    时间: 2007-10-27 02:40

频繁调用此函数
不断的整理、释放
任务管理器中的内存占用
永远为最小值
甚至于失焦释放物理内存
造成系统额外开销更加大
以此给普通用户造成极大误解
本版就此问题来质问tw开发组的帖
也不是一两篇了
xx浏览器就很少的内存
tw为什么占用这么大的内存?
质问的、不满的一度甚嚣尘上
凤凰曾经有过一个说法
如果想做的话
可以使tw的内存占用在任务管理器中显示的极低
这样得不偿失的事情,tw的开发组是不会去做的
熟悉tw的特务应该都了解开发组的理念
tw在关闭多个页面标签后
只保留一个标签的情况下
会有一个释放内存动作
但是此释放并不是把物理内存占用转换到虚拟内存
这个可以很清楚的看出,只是在释放程序自身占用
而最小化释放物理内存是window的机制
挑选一个适合自己的软件,要明白自己需要什么
是追求表面数字上的完美,还是高效、稳定的运行
借用下本论坛某著名写手的名言:
“我选用TW主要是仰慕开发者的人品”
e,又是深夜了......
ps:某著名写手如果不幸看见了俺这个乱七八糟的回复
又不幸正好看见了俺未经许可,擅自转载的恶事
千万莫要介意哈,只要不收版权费
俺也仰慕您一次......
作者: pukeyu    时间: 2007-10-27 08:51

我现在觉得占不占用内存,占多少都没关系,只要不假死,不抢占cup 就可以了
毕竟现在内存已经很便宜了,再强调 内存的占用已经没有什么前途了
作者: hblf    时间: 2007-10-27 09:48

象这样做法的  只要在资源管理器里面设置显示虚存 应该就可以看出猫腻了吧?内存使用是小了 可虚拟内存可一点没小
作者: vicandy    时间: 2007-10-27 09:57     标题: 回复 #1 hynos 的帖子

我好像还用了这个补丁呢
马上改过来!
作者: chaosking    时间: 2007-10-27 10:17

原帖由 靖哥哥 于 2007-10-27 02:40 发表 http://bbs.ioage.com/cn/images/common/back.gif
频繁调用此函数
不断的整理、释放
任务管理器中的内存占用
永远为最小值
甚至于失焦释放物理内存
造成系统额外开销更加大
以此给普通用户造成极大误解
本版就此问题来质问tw开发组的帖
也不是一两篇了
...


比如说哪个?mt??gb??tt??or anyone others??
作者: 小絮    时间: 2007-10-27 11:36

奇怪了,这个优化补丁我查看过,内存占用确实是一段时间减小一次,可是虚拟内存一直没变化啊,而且用了这个补丁后好像虚拟内存的占用也变小了。我现在已经没有原版的那个dll文件了,请大家也测试一下。
ps:这个解析是否真的为官方解析还有待调查。
作者: 向日葵    时间: 2007-10-27 11:45

原帖由 小絮 于 2007-10-27 11:36 发表 http://bbs.ioage.com/cn/images/common/back.gif
奇怪了,这个优化补丁我查看过,内存占用确实是一段时间减小一次,可是虚拟内存一直没变化啊,而且用了这个补丁后好像虚拟内存的占用也变小了。我现在已经没有原版的那个dll文件了,请大家也测试一下。
ps:这 ...


余心有戚戚焉~~~

我觉得这个补丁很有效果

内存较少了,虚拟内存也没大变化而且还比较稳定在一个值波动。。。CPU也没什么异常。

以前迅雷了 就不能打开网页了。现在不仅可以网页还能网络游戏“传奇”一把。
作者: 小絮    时间: 2007-10-27 12:00

此贴讨论的话题与tw2.0的关系不大,个人认为与软件或系统的关系大一点,所以我自私地将此贴转到系统版块,欢迎大家继续讨论。
作者: ncttour    时间: 2007-10-27 12:44

我试了一下,使用补丁后,内存和虚拟内数值的确不高,但数值的变化非常频繁,在我的机子上内存数值波动较大,读写内存和硬盘的频率是很大啊。
作者: AY    时间: 2007-10-27 13:46

原帖由 靖哥哥 于 2007-10-27 02:40 发表 http://bbs.ioage.com/cn/images/common/back.gif
...
但是此释放并不是把物理内存占用转换到虚拟内存
这个可以很清楚的看出...

可以怎样看出来?

同样都是使用 SetProcessWorkingSetSize 啊,TT 是定时使用,MT1 是程序切换到背景时使用,TW 是关闭标签时使用。
作者: lpgo    时间: 2007-11-7 14:10

现在都是1G到2G的内存了吧.

不会在乎那点占用
作者: mutalisker    时间: 2007-11-7 20:01

原帖由 AY 于 2007-10-27 13:46 发表 http://bbs.ioage.com/cn/images/common/back.gif

可以怎样看出来?

同样都是使用 SetProcessWorkingSetSize 啊,TT 是定时使用,MT1 是程序切换到背景时使用,TW 是关闭标签时使用。


TW是关闭最后一个标签后会做一次, 而不是每关闭一个标签都做。
作者: 那巴尔    时间: 2007-11-7 22:17

TW从不会做自欺欺人的事情的。
作者: yjhdeys    时间: 2007-11-7 22:52

XP本身对系统的内存优化是很好的 其实微软的代码在优化上做的很成熟,我们要对比的话那就整体看待一个问题吧!
作者: 清风皓月苔茵展    时间: 2007-11-7 23:58

提示: 作者被禁止或删除 内容自动屏蔽
作者: 挫折    时间: 2007-11-12 14:53

所有程序都是通过CPU-内存-硬盘进行操作.反复整理只会使系统边得不稳定.今天不说这事还.之前用过的XX浏览器.我也觉的很奇怪.用了很多浏览器.但它使用的物理内存最低.原来只是假象
作者: hblf    时间: 2007-11-13 14:28

不过迅雷的内存占用惊人也是有目共睹的 很想知道一种有效的办法 既可以减小迅雷对内存的侵占 也不会频繁读写硬盘和内存  不知道存在不




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2