【发布时间】:2011-12-30 10:27:27
【问题描述】:
我有一个 Delphi 程序,我正在研究这个程序如何在日志文件中打印它自己的“虚拟大小”,以便我可以看到它何时使用了太多内存。如何使用 Delphi 代码确定“虚拟大小”?
“虚拟大小”是指Process Explorer 显示的值。普通任务管理器无法显示此值。它不直接是程序的内存使用量,而是地址空间使用量。在 Win32 上,程序不能使用超过 2 GB 的地址空间。
PS:我使用的是 Delphi 6,但其他版本的代码/信息也应该没问题。
【问题讨论】:
-
在 64 位 Windows 上,使用 LARGEADDRESSAWARE,32 位进程可以使用 4GB 虚拟地址空间。在 D6 上,由于 Borland MM 中的错误,您需要切换 MM(例如切换到 FastMM)才能完成这项工作。