将应用程序11M内存占用,降至500K

2/4/2006来源:Delphi教程人气:8647

 好多天没有写BLog了,最近解决了一个问题-减少内存占用。不过是有条件的,只能在WinXp,Win2K中应用此方法,不显示主窗体一直运行的程序最佳。以前程序占用11M内存,我用动态创建窗口的方法只能减少不到100K,应用此方法后内存占用只有496K。把下面的过程放到一个Timer中,每隔一段时间执行一次,如5秒。
{
************************************
* Clear Memory
* From Muse2008
************************************
}
PRocedure ClearMemory;
begin
        if Win32Platform = VER_PLATFORM_WIN32_NT then
        begin
                SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
                application.ProcessMessages;
        end;
end; 
好多天没有写BLog了,最近解决了一个问题-减少内存占用。不过是有条件的,只能在WinXp,Win2K中应用此方法,不显示主窗体一直运行的程序最佳。以前程序占用11M内存,我用动态创建窗口的方法只能减少不到100K,应用此方法后内存占用只有496K。把下面的过程放到一个Timer中,每隔一段时间执行一次,如5秒。
{
************************************
* Clear Memory
* From Muse2008
************************************
}
procedure ClearMemory;
begin
        if Win32Platform = VER_PLATFORM_WIN32_NT then
        begin
                SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
                application.ProcessMessages;
        end;
end;