首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi,降低内存占用

2012-03-09 
delphi高手进,降低内存占用Delphi 建立一个普通工程 不用写任何代码 运行这时候内存占用大约4m接着 把程序

delphi高手进,降低内存占用
Delphi 建立一个普通工程 不用写任何代码 运行

这时候内存占用大约4m 
接着 把程序最小化 这个时候占用大约几百k
再接着 把程序还原看到窗口的状态 这个时候内存占用1m多

这个是什么原因?

由于我要写的程序的特殊性,我需要程序占用内存在1m以内,该怎么做?
若是能在程序一开始执行下面的语句,起码要少占用一半内存,
form1.hide; 
form1.show;
可是,这样的代码不能写到 TForm.FormCreate() 或 TForm.FormShow()事件中 该写哪?

我程序只有一个窗口,我的要求是运行时候不显示,按固定热键比如ctrl+alt+J 的时候才弹出窗口。
由于上面原因不知道该如何操作,我总不能做个线程过会关闭吧 郁闷ing。。。

各位大大帮帮忙

[解决办法]
用一个计时器,每秒执行一次,强制释放内存

SetProcessWorkingSetSize(GetCurrentProcess,$ffffffff,$ffffffff);
Application.ProcessMessages;
[解决办法]
那是瘴眼法,内存根本就没有减少,算到系统占用内存里了
[解决办法]
SetProcessWorkingSetSize(GetCurrentProcess,$ffffffff,$ffffffff); 
Application.ProcessMessages;

这个其实是个假像,,各位可以看任务管理器里的内存总值计算一下..
[解决办法]
SetProcessWorkingSetSize(GetCurrentProcess,$ffffffff,$ffffffff);
Application.ProcessMessages; 

能减少内存的使用, 会增加cpu的负担, 要是用来糊弄用户或者傻鸟经理也是不错的选择
[解决办法]
那是GDI占用的内存

热点排行