【发布时间】:2023-03-11 12:31:01
【问题描述】:
在 Windows 中,我可以通过调用 GetProcessMemoryInfo 来获取峰值内存使用情况
function TProcess.Peek: Cardinal;
var
PMC: PPROCESS_MEMORY_COUNTERS;
PMCSize: Cardinal;
begin
PMCSize := SizeOf(PROCESS_MEMORY_COUNTERS);
GetMem(PMC, PMCSize);
try
PMC^.cb := PMCSize;
if GetProcessMemoryInfo(FHandle, PMC, PMCSize) then
Exit(PMC^.PeakWorkingSetSize)
else
Exit(0);
finally
FreeMem(PMC);
end;
end;
Mac OS 有什么功能可以做到这一点?
【问题讨论】:
-
这里有一个 Python 示例脚本,展示了如何使用命令行实用程序并捕获其输出以收集此信息。您可以使用 Delphi/Pascal 中的相同方法。 apple.stackexchange.com/questions/4286/…
-
顺便说一句,用于内存使用的 POSIX API 在 OS/X 上不起作用,因此没有可移植的方法可以在 OS/X 和所有常见的 Unix/Linux 系统上运行。我确信有一个仅适用于 OS/X 的 API,并且像 ACE 这样的 C++ 包装器包含此功能。也许 Embarcadero 应该将此添加到他们的 RTL 中。
-
这可能有用:CHUD tools
标签: macos delphi memory delphi-xe2