检索内存和缓存未命中:可执行文件和脚本

时间:2015-12-13 09:57:37

标签: python bash perl caching profiling

我需要在理论上找到容易的东西,但实际上很棘手。

在OSX下有一堆工具,有些是:

  • 预编译的java jars,
  • 预编译的可执行文件,可以生成并调用其他程序,
  • bash / python / perl脚本调用一些预编译的可执行文件,

我需要查找并分类内存和缓存事件。通过预编译我的意思是,我无法访问源代码。

详细内容我需要找出整体占用内存,页面错误和虚拟内存事件,但更重要的是, L1 / L2 / L3缓存未命中。这意味着我还需要跟踪所有生成的进程,而不仅仅是主程序。

欢迎任何提示!

1 个答案:

答案 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允许配置生成的子项