我需要在理论上找到容易的东西,但实际上很棘手。
在OSX下有一堆工具,有些是:
我需要查找并分类内存和缓存事件。通过预编译我的意思是,我无法访问源代码。
详细内容我需要找出整体占用内存,页面错误和虚拟内存事件,但更重要的是, L1 / L2 / L3缓存未命中。这意味着我还需要跟踪所有生成的进程,而不仅仅是主程序。
欢迎任何提示!
答案 0 :(得分:1)
我认为你应该使用Valgrind。要获得内存使用情况的完整报告:
valgrind --tool=massif --stacks=yes
这将为您提供堆和堆栈内存使用情况。然后将信息存储在文件massif.out中。您可以阅读
ms_print massif.out。?????
我已经写过一篇文章:post
Valgrind还会记录缓存事件,它会为您提供缓存未命中以及缓存事件的完整详细输出:
valgrind --tool=cachegrind prog
然后至于地块你有一个工具来阅读详细的输出:
cg_annotate <filename>
请参阅完整的documentation以了解输出。 选项--trace-children = yes允许配置生成的子项