Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何监控Delphi应用程序的峰值内存使用率?_Delphi_Memory - Fatal编程技术网

如何监控Delphi应用程序的峰值内存使用率?

如何监控Delphi应用程序的峰值内存使用率?,delphi,memory,Delphi,Memory,我刚刚结束了Delphi应用程序中的一次主要重构,并想比较构建之间的峰值内存使用情况。基本上,我需要证明最新的重构比以前的构建占用更少的RAM。由于应用程序的变化如此之大,很难精确地找出一个等效的时间点来比较指标。最好的比较方法是了解应用程序执行期间的最高内存消耗。例如,如果我的应用程序在整个持续时间内需要1MB的RAM,但在1ms内需要2MB,我希望得到2MB作为结果 我开始使用FastMM4,但我不确定它是否能满足我的需要。它可以是一个外部工具,也可以是我嵌入到我的应用程序a la Fast

我刚刚结束了Delphi应用程序中的一次主要重构,并想比较构建之间的峰值内存使用情况。基本上,我需要证明最新的重构比以前的构建占用更少的RAM。由于应用程序的变化如此之大,很难精确地找出一个等效的时间点来比较指标。最好的比较方法是了解应用程序执行期间的最高内存消耗。例如,如果我的应用程序在整个持续时间内需要1MB的RAM,但在1ms内需要2MB,我希望得到2MB作为结果

我开始使用FastMM4,但我不确定它是否能满足我的需要。它可以是一个外部工具,也可以是我嵌入到我的应用程序a la FastMM4中的东西。

您可以使用


右键单击顶部标题,然后使用“选择列”菜单,并从“进程内存”选项卡中检查“峰值专用字节”。

dwrbudr推荐的Process Explorer很不错,但缺少所需的粒度,因此我在每个构建的整个流程中都停止使用FastMM4。我只是记录了这些值,然后手动比较了演变过程。

听起来像是Windows内置性能监视工具的工作。您可以将其设置为随时间监视每个进程或系统范围内的各种性能计数器,包括内存使用情况。内存消耗是一个非常相对的变量。如果最小化应用程序,则可能。。。此外,FastMM4可能会保留更多内存空间,但实际上不会从硬件分配内存空间。我不会花太多时间猜测几MB的内存消耗。只有几GB,或者如果它开始在磁盘上交换,我会担心——实际上可能是内存泄漏。无论如何,Windows本身就是这样一个内存消耗器Peak private bytes是需要检查的问题理想情况下,您需要对完全相同的工作流进行自动测试,以便在版本之间进行比较,并始终执行多个测试