我正在运行一些测试代码(我自己的),我希望他们自行报告他们使用了多少内存。理想情况下,这将是一个高水位线。top
诸如活动监视器或报告之类的东西。
C++ 代码,需要在 OSX 和/或 Linux 上工作。一种对两者都有效的方法会很棒,如果不是对任何一个都有效的方法会受到欢迎。
OSX 程序如何知道它使用了多少内存?
我正在运行一些测试代码(我自己的),我希望他们自行报告他们使用了多少内存。理想情况下,这将是一个高水位线。top
诸如活动监视器或报告之类的东西。
C++ 代码,需要在 OSX 和/或 Linux 上工作。一种对两者都有效的方法会很棒,如果不是对任何一个都有效的方法会受到欢迎。
OSX 程序如何知道它使用了多少内存?
我可能会研究 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 替代品可能比您自己实现的任何东西更易于使用、更便携和更全面。