我想通過使用硬件性能計數器來剖析由Linux上的JIT生成的代碼。據我所知,最常見的配置文件是oprofile
和perf
。使用perf_events/oprofile分析Linux上JIT的輸出?
如何整合JIT和oprofile/perf?
我的JIT不是已經在oprofile中支持的JAVA。 (perf?)
例如,我們可以考慮LLVM的JIT。我想
- 見最熱門的功能(自己的名字)從JIT泰德代碼
- 見最熱函數的反彙編,分配給每一個指令
我想通過使用硬件性能計數器來剖析由Linux上的JIT生成的代碼。據我所知,最常見的配置文件是oprofile
和perf
。使用perf_events/oprofile分析Linux上JIT的輸出?
如何整合JIT和oprofile/perf?
我的JIT不是已經在oprofile中支持的JAVA。 (perf?)
例如,我們可以考慮LLVM的JIT。我想
要分析JIT編譯的代碼的性能計數器統計使用perf,下載,編譯並安裝perf-map-agent庫,然後(對於java代碼)將 -agentpath:<path>/libperfmap.so
添加到命令行。
對於非java代碼,只要生成/tmp/perf-$pid.map
符號映射文件,perf 將在生成perf報告時使用這些代碼。
布倫丹格雷格有一個blog post有相關的參考文獻。
oprofile可能是[opagent](http://oprofile.sourceforge.net/doc/devel/index.html)嗎? – osgx
而對於perf,penberg @通過'/ tmp/perf-1來支持Jato JVM的JIT補丁[「perf報告:增加對profiling JIT生成代碼的支持」](http://lwn.net/Articles/474254/) $ PID.map'符號(?)文件。格式爲「Startaddr大小名稱\ n」。這個文件必須可以被'perf report' – osgx
讀取,這裏是perf補丁:https://lkml.org/lkml/2009/6/8/499「perf report:添加對分析JIT生成代碼的支持」 – osgx