是的,有一些工具可以让你这样做,但正如人们所期望的那样,它们是特定于平台/架构的.他们也可能有编译器限制:
Cachegrind:缓存和分支预测分析器.这可能是您最接近的目标.你可以使用它valgrind
(假设一个Linux内核)
valgrind --tool=cachegrind your_program
它还有一些用于微调的选项.看看文档.典型的转储/输出Cachegrind
看起来像(从网站上剥离)
==31751== I refs: 27,742,716
==31751== I1 misses: 276
==31751== LLi misses: 275
==31751== I1 miss rate: 0.0%
==31751== LLi miss rate: 0.0%
==31751==
==31751== D refs: 15,430,290 (10,955,517 rd + 4,474,773 wr)
==31751== D1 misses: 41,185 ( 21,905 rd + 19,280 wr)
==31751== LLd misses: 23,085 ( 3,987 rd + 19,098 wr)
==31751== D1 miss rate: 0.2% ( 0.1% + 0.4%)
==31751== LLd miss rate: 0.1% ( 0.0% + 0.4%)
==31751==
==31751== LL misses: 23,360 ( 4,262 rd + 19,098 wr)
==31751== LL miss rate: 0.0% ( 0.0% + 0.4%)
Run Code Online (Sandbox Code Playgroud)
对于Windows,还有WinCachegrind
归档时间: |
|
查看次数: |
123 次 |
最近记录: |