gpt4 book ai didi

delphi - 可以清除内存吗?

转载 作者:行者123 更新时间:2023-12-03 14:33:32 27 4
gpt4 key购买 nike

我正在Win32项目的Delphi 5(已安装FastMM)中工作,最近一直在尝试大幅减少此应用程序中的内存使用量。到目前为止,我已经将使用量减少了近一半,但是在执行单独的任务时发现了一些问题。当我最小化应用程序时,内存使用从45兆减少到1兆,这归因于它分页到磁盘。当我恢复它并重新开始工作时,内存仅上升到15兆。当我继续工作时,内存使用率再次缓慢上升,并通过最小化和还原将其刷新回15兆。因此,按照我的想法,当我的代码告诉系统释放内存时,它仍然按照Windows保留,并且实际的垃圾回收要等到很长时间以后才开始。

谁能确认/否认这种行为?是否可以通过编程方式清理内存?如果我不使用此手动刷新就继续使用该程序,则过一会儿出现内存不足错误,并希望消除该错误。谢谢。

编辑:我在about.com上找到了一篇文章,其中提供了很多内容,以及一些有关内存管理其他 Realm 的链接和数据。

最佳答案

这是我们在DSiWin32中使用的:

procedure DSiTrimWorkingSet;
var
hProcess: THandle;
begin
hProcess := OpenProcess(PROCESS_SET_QUOTA, false, GetCurrentProcessId);
try
SetProcessWorkingSetSize(hProcess, $FFFFFFFF, $FFFFFFFF);
finally CloseHandle(hProcess); end;
end; { DSiTrimWorkingSet }

关于delphi - 可以清除内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2031577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com