首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用大量内存的程序中使用AQTime的内存分配分析器?

如何在使用大量内存的程序中使用AQTime的内存分配分析器?
EN

Stack Overflow用户
提问于 2011-01-10 11:46:17
回答 1查看 1.2K关注 0票数 2

我发现AQTime很难使用,因为它太多地干扰了原始程序。例如,如果我有一个使用300MB内存的程序,我可以毫不费力地使用AQTime的分配分析器,并找出大部分内存正在使用的位置。然而,我注意到在AQTime下运行时,原始程序在分析时使用了更多的1 1GB。

现在,我正在尝试减少一个使用1.4 of内存的程序的内存使用量。如果我在AQTime下运行它,那么原始程序将使用所有2 2GB的地址空间并崩溃。当然,我可以发明一组较小的测试数据,并估计内存使用量将如何随整个数据集扩展-但我首先使用分析器的原因是试图避免这种猜测。

我已经将AQTime设置为'Collect stack information - None‘,所有用于检查内存完整性的复选框都被关闭,并且我已经尝试将分析区域限制为只有几个类,但这似乎没有任何改善。有没有一种使用AQTime的方法可以产生较小的开销?或者,如果做不到这一点,还有什么其他方法可以很好地了解内存的使用情况?

这个应用是用Delphi2010编写的,我用的是AQTime 6。

注:除了内存使用量的增加,在AQTime下运行会大大减慢应用程序的速度,这使得整个操作不仅不可能,而且也不切实际:-P

EN

回答 1

Stack Overflow用户

发布于 2011-01-10 17:21:00

AFAIK分配探查器将跟踪内存块分配,而不考虑分析区域。分析区域用于跟踪类的实例化。当然,内存-分析分配大量内存的应用程序是一个问题,您可以尝试使用LARGE_ADRESS_AWARE标志和/3GB启动开关,或者使用64位系统(只要您有至少4 4GB或更多的内存)。您还可以在应用程序崩溃之前获取应用程序状态的快照,以查看内存分配的位置。分析需要时间,不管怎样,你可能不得不让它运行一段时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4643530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档