阿杰 发表于 2010-5-6 21:33:58

不用API照样内存优化

.版本 2
.支持库 spec

.子程序 _内存优化

延迟 (10)
_启动窗口.位置 = 2
延迟 (10)
_启动窗口.位置 = -1

.子程序 _按钮1_被单击

_内存优化()

阿杰 发表于 2010-5-6 21:48:34

如果用API优化可用以下代码
.版本 2
SetProcessWorkingSetSize (-1, -1, -1)

.版本 2

.DLL命令 SetProcessWorkingSetSize, 整数型, "kernel32", "SetProcessWorkingSetSize", 公开
    .参数 hProcess, 整数型
    .参数 dwMinimumWorkingSetSize, 整数型
    .参数 dwMaximumWorkingSetSize, 整数型

delphi 发表于 2010-5-14 14:38:06

呵呵,原来这样也可以呀

9908006 发表于 2010-5-14 21:53:29

关键就是SetProcessWorkingSetSize 嘛,不过据说有点自欺欺人

马大哈 发表于 2010-7-13 23:44:23

确实是自欺欺人的.

SetProcessWorkingSetSize如此使用参数,就是将程序所使用的物理内存尽量地向虚拟内存中压.

表面上看,物理内存占用确实是少了.

但是,一旦程序需要使用到已经被强行压到虚拟内存(也就是硬盘页面文件)中的内容时,又得重新从虚拟内存里读出来.

目前最好的硬盘速度比起内存来说那都至少是慢了几十上百倍,于是此招就会造成当前程序的运行效率严重下降,同时因为频繁读硬盘,占用了本来就不多的带宽,搞得整个系统的运行效率都下降了.

所以这个函数不可以频繁地调用,一般是在窗体最小化之类的用户暂时不需要与程序交互时调用一下.

不得不说,发明这种损招的人很有才!把MSDN看了一半就叼着跑了!
页: [1]
查看完整版本: 不用API照样内存优化