有哪些好的工具/技术可以发现代码的哪些区域使用了大量内存?我在 linux 上看到过类似的问题,其中提到了 valgrind,但没有看到关于使用 Visual Studio 2010 开发的 Windows 应用程序的问题。
最佳答案
还有AQTime如果您使用分配分析器,它可以为您提供已分配对象的列表和每个对象创建位置的调用堆栈。
其他选项包括使用对象的实例计数器手动检测您的代码。不理想,但它可能很有用,尤其是在分析工具无法运行您的应用程序时(例如,由于内存不足或仪器故障等)。
这些工具通常不会以非常明显的方式显示内存碎片 - 如果您有许多大对象和许多小对象以不同的顺序频繁分配和释放,则很容易发生这种情况。如果可能的话,为其中一些对象使用池是值得的,并且在某些情况下它会对内存使用和性能产生巨大影响。
关于c++ - 调试高内存使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911911/