我已经查看了GDB文档,但没有找到任何可以工作或显示我需要的内容:我的应用程序使用的最大内存量。如何获得执行应用程序时使用的内存量
如果相关,我正在使用MinGW-w64(适用于Windows的GCC)。我希望编程的东西,而不是“看你的任务管理器”。另外:我的应用程序一次执行,不会停止或停止任何地方,我想保持这种方式。
谢谢!
我已经查看了GDB文档,但没有找到任何可以工作或显示我需要的内容:我的应用程序使用的最大内存量。如何获得执行应用程序时使用的内存量
如果相关,我正在使用MinGW-w64(适用于Windows的GCC)。我希望编程的东西,而不是“看你的任务管理器”。另外:我的应用程序一次执行,不会停止或停止任何地方,我想保持这种方式。
谢谢!
你可以包装的malloc/free或new /删除: How-to-profile-memory-usage-of-a-c-program
从而可以检查有多少内存(堆)使用在任何时间。
Windows提供了返回正在使用多少内存的函数。
http://msdn.microsoft.com/en-us/library/aa366589(v=VS.85).aspx
的标准没有规定什么比malloc()
和free()
更深,这让C库自由实现他们在目标环境中工作。结果是像GDB这样的调试器没有与特定环境绑定,因此无法分析内存分配。
该方法是否需要可移植? – bdonlan 2011-02-05 12:25:21
WMI会是您的选择吗?它当然可以告诉你几乎任何你需要的任何进程:http://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx – alex 2011-02-05 12:26:24
@bdonlan:嗯,我是种令人惊讶的gdb没有能力总结金额...便携式会更好,并且应用程序本身之外将是首选(无源代码污染)。 @alex:对于简单数量的MB有点沉重,不是吗?我想现有的应用报告,所以我不必拧我自己的实施。 – rubenvb 2011-02-05 12:40:58