0

我正在运行一些测试代码(我自己的),我希望他们自行报告他们使用了多少内存。理想情况下,这将是一个高水位线。top诸如活动监视器或报告之类的东西。

C++ 代码,需要在 OSX 和/或 Linux 上工作。一种对两者都有效的方法会很棒,如果不是对任何一个都有效的方法会受到欢迎。

OSX 程序如何知道它使用了多少内存?

4

1 回答 1

1

我可能会研究 tcmalloc、jemalloc 或其他一些 malloc 替代品之类的东西。tcmalloc 提供了相当多的自省 - http://gperftools.googlecode.com/svn/trunk/doc/tcmalloc.html概述了它提供的功能。查看“Generic Tcmalloc Status”和“Memory Introspection”部分的一些想法,如果您选择走这条路,这些想法可能会有所帮助。如果您想了解 jemalloc,请参阅http://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919

除此之外,还有一些依赖于操作系统的机制来获取信息。在 linux 上,/proc/self/statm 应该有你想要的一切。man proc那里应该有关于文件的文档。

用于统计的 malloc 替代品可能比您自己实现的任何东西更易于使用、更便携和更全面。

于 2013-11-06T03:18:22.360 回答