引述:about 優化 Delphi2005 Update2

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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 我才疏学浅就不清楚了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航