标题:
tw2.0占用内存太大了,可以使用SetProcessWorkingSetSize函数来整理内存,内详
[打印本页]
作者:
tomz1
时间:
2007-3-5 17:41
标题:
tw2.0占用内存太大了,可以使用SetProcessWorkingSetSize函数来整理内存,内详
可以定时清理,有效!
procedure ClearMemory;
begin
if Win32Platform=VER_PLATFORM_WIN32_NT then begin
SetProcessWorkingSetSize(GetCurrentProcess,$FFFFFFFF,$FFFFFFFF);
end;
end;
[
本帖最后由 tomz1 于 2007-3-5 17:42 编辑
]
作者:
wuyou331
时间:
2007-3-5 18:00
有这个必要时开发组会做的
而且觉不会用上面这么简单的代码
作者:
lvjing79
时间:
2007-3-5 18:11
要是整理内存那么容易,大家都可以写随时清理内存的程序了,呵呵!
作者:
ice2flash
时间:
2007-3-5 18:48
像我这样的编程入门者也知道这个函数,相信凤凰一定知道。不过如果凤凰不使用,一定是有自己的考虑!
作者:
tomz1
时间:
2007-3-5 21:00
凤凰已经在用这个方法了,我的建议多余了
0046701D /$ FF15 E4124000 CALL [<&KERNEL32.GetCurrentProcess>] ; [GetCurrentProcess
00467023 |. 85C0 TEST EAX,EAX
00467025 |. 74 0B JE SHORT 00467032
00467027 |. 6A FF PUSH -1
00467029 |. 6A FF PUSH -1
0046702B |. 50 PUSH EAX
0046702C |. FF15 C4114000 CALL [<&KERNEL32.SetProcessWorkingSetSize>] ; kernel32.SetProcessWorkingSetSize
作者:
veenter
时间:
2007-3-5 22:19
你这段代码不是C++的!
作者:
renior
时间:
2007-3-5 22:25
楼上的,那是楼主反编译的tw程序,是汇编语言
作者:
tomz1
时间:
2007-3-5 23:30
我修改过的tw2.0版本,看图,压缩包里有修改过的执行文件,怕的人可以在虚拟机里用
[
本帖最后由 tomz1 于 2007-3-5 23:32 编辑
]
作者:
混神
时间:
2007-3-6 00:15
你竟然全都去掉了,要是留下收藏夹就好了~
作者:
szweiming
时间:
2007-3-6 00:16
楼上的,不错,是个高手~~~~~~~~~
作者:
逸水魂
时间:
2007-3-6 08:08
不错,运行速度快多了,内存占用也明显减小了
作者:
www56789www
时间:
2007-3-6 08:36
谢谢了,是快了!内存占用也明显减小了
作者:
000pengpeng
时间:
2007-3-6 09:04
不错不错,你也出个浏览器吧
作者:
Conet
时间:
2007-3-6 10:14
lz你真的好厉害啊,真的不错嗳
作者:
ggg_000_111
时间:
2007-3-6 10:18
提到汇编我就晕:七窍通了六窍了。
作者:
lpgo
时间:
2007-3-6 10:30
有毛病! 我下了 楼主 修改的 浏览器 了
CPU 占用 大! (内存占用 是少点)
作者:
pmt
时间:
2007-3-6 10:38
斧头
作者:
mutallsker
时间:
2007-3-6 10:46
提示:
作者被禁止或删除 内容自动屏蔽
作者:
mutalisker
时间:
2007-3-6 10:48
楼主很强啊
对于这个函数,TW也一直在用,只不过是在关闭到最后一个标签的时候调用一次。因为这个函数频繁调用的唯一好处就是任务管理器里面看着小而已,并且频繁的调用好像还会导致很多不稳定因素的产生。
其实我挺恨这个函数的,就是由于有了这个函数,无数个软件都疯狂的调用它,然后站出来说:你看我,内存占用最小。
作者:
tomz1
时间:
2007-3-6 10:49
我为了省事,只是在exe内部嵌入了一个时钟函数,定时清理,所以要占用了一些CPU
更好的方法是在网页完全打开后,执行一次清理就够了,这个要作者加入了
我只是软件的使用者,这个比马桶好
作者:
mutallsker
时间:
2007-3-6 10:53
提示:
作者被禁止或删除 内容自动屏蔽
作者:
tomz1
时间:
2007-3-6 10:53
tw2是在每关闭一个标签的时候,都会调用这个函数
作者:
mutalisker
时间:
2007-3-6 10:53
对了,楼上的可以直接和我联系交流
e-mail:xiaoc@ioage.com
msn:xiaoc@live.com
作者:
king_hh
时间:
2007-3-6 11:06
值得一赞,如果tw弄个选项就好了。
作者:
king_hh
时间:
2007-3-6 11:24
用了一会儿感觉良好,很流畅,没有什么问题。good!
作者:
easeking
时间:
2007-3-6 11:41
水一下
作者:
phoenix
时间:
2007-3-6 14:28
又见这类版本,呵呵
对了,2.0春节版的下一个版本,访问多个页面后,再关闭,内存占用将比现在的版本有很大的下降 - 尤其是虚拟内存
还有优化了几个CPU占用率比较高的地方,请大家下个版本再看看
楼主说的这个函数,只能降低物理内存看起来的占用,它实际是把做了内存交换, 我们还是希望能深入内核和代码逻辑去降低内存占用,而不是简单的调用一句Windows API,然后把系统为此的开销推给用户去承担
当然,还是要谢谢楼主的热心
作者:
夜火燎原
时间:
2007-3-6 15:00
偶也下来试试~~支持楼主一个~
作者:
fiction
时间:
2007-3-6 15:27
TW的内存比1.X的大的多~感觉
作者:
gj13101
时间:
2007-3-6 16:17
内存是变得好小了
作者:
fratre
时间:
2007-3-6 16:22
这个东西说实说只是起一个心理安慰的作用,带来的隐患则多多。
最大的一个问题就是让硬盘的读写频率加大了。
原来国内有个mim的im软件就用这个,结果因为交换过于频繁,软件非常不稳定
作者:
lvjing79
时间:
2007-3-6 17:55
开发者说的很中肯,内存只是减少一点只是看起来好看,但未必会对用户的浏览体验带来更好!
作者:
lpgo
时间:
2007-3-6 17:58
学习下
作者:
wuyou331
时间:
2007-3-6 18:32
只是看起来而已。实际上不是如此
作者:
tcbao
时间:
2007-3-6 18:48
试用了一下,占用内存少了,可虚拟内存多了!
加起来和没有修改的基本持平了!
作者:
tcbao
时间:
2007-3-6 18:49
如果内存大,空出那么多也是浪费,还不如频繁读内存,而不是频繁读硬盘
作者:
hayem
时间:
2007-3-6 20:20
不懂这个
作者:
burning
时间:
2007-3-6 20:40
不懂
作者:
backfire
时间:
2007-3-7 06:48
SetProcessWorkingSetSize()这个函数的应用要小心。 它固然可以改变应用程序的workset,也就是物理内存的占有。但是这个也是有代价的。 如果系统中其它的程序不变,当然没有问题; 但系统是动态的,而且还有其它程序在运行。 如果系统内存富裕,那么是否改变workset,值得商榷; 但如果系统内存紧张,那么改变workset,使得TW内存消耗减小,但随着打开网页的增加,对内存的需求又会改变,那么反过了反而消耗系统的资源(内存重新的划分,及CPU耗时判断及修正内存分配,都是资源的消耗),因此对性能的影响是显而易见的,而且时间长了,内存占有怕有又要回升。
就Windows本身而言,窗口的最小化,或者闲置等,系统都会调用这个SetProcessWorkingSetSize()函数,如果应用程序内部在调用的话, 有可能导致内存调整频繁,从而更影响系统整体性能。
而所谓内存碎片,则是另一个大的议题,三言两语怕说不清楚; 但系统内存和进程内存空间,还有物理内存是有所区别的, 每个进程的虚拟内存映射到真实的物理内存上,是一个非线性的过程,根本不是一一对应的, 因此所谓碎片说,不正确;但强行分配一大块内存,迫使系统paging,重新分配内存,因此反而在一定程度上达到了内存“清理”的过程。
因此我的观点是, 除非特别应用的需要,值得一定程度上接管内存策略;其它的应用还是让OS的sub系统各司其职吧。
btw,楼主也用Delphi的吗?
作者:
bshkl
时间:
2007-3-7 11:12
支持20F和19F
没有必要这样做,有时间控件 一定会站CPU
像这样 即占了用户的内存,又占了CPU
频繁的强制的把内存 调入虚拟内存, 对硬盘来说还是伤害(和前期的BT差不多)
[
本帖最后由 bshkl 于 2007-3-7 11:16 编辑
]
作者:
寄托天下
时间:
2007-3-7 12:06
前一段不是快车闹得很厉害么?听说原来是使用了比特精灵的技术
作者:
kangchu888
时间:
2007-3-7 13:27
原帖由
寄托天下
于 2007-3-7 12:06 发表
前一段不是快车闹得很厉害么?听说原来是使用了比特精灵的技术
发生什么事了 什么比特精灵的技术
作者:
dapuli
时间:
2007-3-7 14:44
好用 高人佩服
作者:
lpgo
时间:
2007-3-7 17:08
原帖由
寄托天下
于 2007-3-7 12:06 发表
前一段不是快车闹得很厉害么?听说原来是使用了比特精灵的技术
给讲下! 好奇着呢 !
欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/)
Powered by Discuz! 7.2