引述:about 優化 Delphi2005 Update2

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 aiirii 的 blog

from: http://forum.vclxx.org/topic.asp?topic_id=30282&forum_id=40&cat_id=7&topic_title=delphi+2005+update2&forum_title=%a7%f5%ba%fb%c5%aa%aa%cc%b1m%b0%cf

 

有人写了一个清内存的bpl插件,据他讲用了以后delphi2005只占3、4兆内存,多次编译后占用内存不会递增,其实这个bpl只有一个pas文件,这个文件里主要的就是一个函数,如有兴趣你看看:
{
2004.11.30
wr960204 武稀松(王锐)
}
unit unitmmsave;

interface

uses
classes, windows, sysutils, strutils, extctrls, forms,
dialogs;

implementation

const
frequency = 5000;//每隔五秒钟整理一次内存,速度很快的 :)
var
timerid: integer;
inproc: boolean;

procedure savememory;
begin
if win32platform = ver_platform_win32_nt then
begin //整理内存
setprocessworkingsetsize(getcurrentprocess, $ffffffff, $ffffffff);
end;
end;

//定时器要执行的回调函数
procedure hearbeatproc(wnd: hwnd; msg, event, dwtime: integer); stdcall;
begin
if (inproc = false) then
begin
inproc := true;
try
savememory;
finally
inproc := false;
end;
end;
end;

initialization
settimer(0, 0, frequency, @hearbeatproc); //创建一个定时器
finalization
killtimer(0, timerid);
end.

听你这么说,我也用delphi for win32新建了一个package,新建一个unit,把代码拷进去,编译,安装。编译了一下demos里的delphi for win32和c#的 webservices工程,也编译了一下其它类型的工程,发现bds.exe(delphi2005的编译器?)进程占用的内存能减少并维持在3兆到8兆之间。不过在bds.exe占用内存降下来了以后,windows任务管理器里面的内存使用总数却没有显示减少。是操作系统的问题还是.net垃圾收集器或者delphi2005编译器的bug 我才疏学浅就不清楚了。


本文关键:引述:about 優化 Delphi2005 Update2
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top