我发现 AQTime 很难使用,因为它过多地干扰了原始程序。例如,如果我有一个使用 300MB 内存的程序,我可以毫无问题地使用 AQTime 的分配分析器,并找出大部分内存正在使用的位置。但是我注意到在 AQTime 下运行,原始程序在分析时使用更像 1GB。
现在我正在尝试减少使用 1.4GB 内存的程序中的内存使用量。如果我在 AQTime 下运行它,那么原始程序会使用所有 2GB 地址空间并崩溃。我当然可以发明一组较小的测试数据,并估计内存使用量将如何随整个数据集扩展——但我首先使用分析器的原因是为了避免这种猜测。
我已经将 AQTime 设置为“收集堆栈信息 - 无”,并且所有与检查内存完整性有关的复选框都已关闭,并且我尝试将要分析的区域限制为仅几个类,但这似乎没有改善任何事情。有没有办法使用 AQTime 产生更小的开销?或者如果做不到这一点,还有什么其他方法可以很好地了解正在使用的内存?
该应用程序是用 Delphi 2010 编写的,我使用的是 AQTime 6。
注意:除了增加的内存使用量之外,在 AQTime 下运行会大大降低应用程序的速度,这使得整个练习不仅不可能而且也不切实际:-P