【发布时间】:2023-04-02 11:50:01
【问题描述】:
我刚刚结束了我的 Delphi 应用程序中的一次重大重构,并想比较构建之间的峰值内存使用情况。基本上我需要证明最新的重构比以前的构建占用更少的 RAM。由于应用程序发生了很大变化,因此很难确定一个等效的时间点来比较指标。比较的最佳方法是了解应用程序执行期间的最高内存消耗。例如,如果我的应用程序在整个持续时间内需要 1 MB 的 RAM,但在 1 毫秒内它需要 2 MB,我希望得到 2 MB 作为结果。
我开始使用 FastMM4,但我不确定它是否能满足我的需要。它可以是一个外部工具,也可以是我嵌入到我的应用程序中的东西(例如 FastMM4)。
【问题讨论】:
-
听起来像是 Windows 内置性能监视器工具的工作。您可以将其设置为随着时间的推移,按进程或系统范围监控各种性能计数器,包括内存使用情况。
-
内存消耗是一个非常相对的变量。如果您最小化应用程序,working set is actually trimmed... 也可能是 FastMM4 可能会保留更多内存空间,但实际上并未从硬件中分配它。我不会花太多时间来猜测几 MB 的内存消耗。只有几 GB,或者如果它开始在磁盘上交换,我会担心 - 在实践中它可能是内存泄漏。无论如何,Windows 本身就是一个记忆吞噬者。 :)
-
峰值私有字节是要检查的裂痕
-
理想情况下,您需要对完全相同的工作流程进行自动化测试,以便在不同版本之间进行比较并始终进行多项测试