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

Retrieve memory and cache misses: executables and scripts

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

OSX 下有一堆工具,其中一些是:

我需要查找和分类内存和缓存事件。我所说的预编译是指我无法访问源代码。

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

欢迎任何提示!

我认为您应该使用 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 允许分析生成的 child