perf

    1热度

    1回答

    我的目标是从另一个内核模块中读取内核3.14(lwn-link)中引入的intel rapl计数器(perf_event_intel_rapl.c)。使用perf_event_create_kernel_counter阅读“通用”计数器很容易。我发现一个很好的例子为:http://wadeatwork.com/?p=1SW_CPU_CLOCK 的PERF手册页(link)说,对于PERF_TYPE

    0热度

    1回答

    我希望看到函数及其所有后代使用perf报表所花费的时间比例。也就是说,假如我有类似 void foo() { biz(); // 3,300 cycles baz(); // 3,300 cycles // ... 100 cycles } int main() { foo(); bar(); // 3,300 cycles

    1热度

    1回答

    我试图找到一个分支最常被误预测的函数中的位置。我给PERF一试,如下所示: perf record ./a.out a.out与选项-ggdb -fno-omit-frame-pointer编制,所推荐的手册。 我怎样才能找到这些景点?

    3热度

    1回答

    我读不同大小的文件(1KB - 1GB)在C使用read()。但每次我检查使用perf-statpage-faults,它总是给我相同的(几乎)值。 我的机器:(Fedora的18上的虚拟机,内存 - 1GB,硬盘空间 - 20 GB) uname -a Linux localhost.localdomain 3.10.13-101.fc18.x86_64 #1 SMP Fri Sep 27 2

    3热度

    1回答

    我试图在使用linux perf工具的特定功能期间监视性能状态。 我在之后https://perf.wiki.kernel.org/index.php/Jolsa_Features_Togle_Event#Example_-_using_u.28ret.29probes 给出的指示,我试图让一个简单的C程序的指令数。 (如下所示) 1)我的简单的C代码 #include<stdio.h> in

    4热度

    1回答

    运行时perf它找到我的程序的内核符号和符号,但它没有找到外部模块符号。我写了一个内核模块,我使用insmod加载,我怎么能告诉perf找到它的符号呢? 我正在运行2.6.37.6内核(无法升级),我的perf尚不支持矮人选项,但我认为它是一个符号问题。我编了一切与-g -fno-omit-frame-pointer

    3热度

    1回答

    我正在研究使用简单的微基准测试的缓存效果。 我认为,如果N大于缓存大小,那么缓存在每个第一读取缓存行中都会有一个丢失操作。 在我的机器中,缓存行大小= 64Byte,所以我认为完全缓存发生了N/8个未命中操作,缓存研究表明这一点。 但是,perf工具显示不同的结果。它只发生34,265个缓存未命中操作。 我很怀疑硬件预取,因此请在BIOS中关闭此功能。无论如何,结果是一样的。 我真的不知道为什么p

    5热度

    1回答

    我跑PERF以下空的程序分析, #include <stdio.h> int main() { } 编译和运行PERF统计./a.out我得到了下面的输出说法(以及之后其他数据,如周期数,任务时钟等): 418,869 instructions # 0.87 insns per cycle 的指令变化期间每“PERF”在相同的小精灵数目分析。 我的实际需要是在我写的特定函数中找到指令的

    21热度

    3回答

    运行perf stat ls表明这一点: Performance counter stats for 'ls': 1.388670 task-clock # 0.067 CPUs utilized 2 context-switches # 0.001 M/sec 0 cpu-migrations # 0.000 K/sec

    16热度

    3回答

    我正在寻找一种方法来查明我的程序花费了多少时间。我读了perf tutorial并试图描述那里描述的睡眠时间。我写了一个最简单的程序来分析: #include <unistd.h> int main() { sleep(10); return 0; } 然后我PERF执行它: $ sudo perf record -e sched:sched_stat_sleep -e