This question already has answers here:
How to determine CPU and memory consumption from inside a process?
(9个答案)
6年前关闭。
我正在运行一些测试代码(我自己的),我希望它们能够自我报告它们使用了多少内存。理想情况下,这将是一个高水位线。类似于什么活动监视器或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文件上应该有文档。
为stats测试的malloc替换可能比您自己实现的任何东西都更易于使用、更可移植和更全面。

10-04 14:47