Valgrind callgrind 是否使用总时间或"execution time"来创建数据

Does Valgrind callgrind uses total time or "execution time" to create data

本文关键字:execution time 数据 创建 时间 是否 callgrind Valgrind      更新时间:2023-10-16

我有一个问题,我的应用程序随着线程数量线性扩展(认为800个线程的性能是双核CPU上400个线程的两倍)。我的直觉告诉我线程正在睡眠或被阻塞…但我在callgrind看不到这一点。

callgrind也测量函数时间,或者仅仅是线程活动创建数据的时间。如果你不清楚我的要求……线程does

i ++;

连续2秒,然后

sleep(1);//thread will not be scheduled to run for min 1 second...  

i++是约100%还是约66%的呼叫图

Valgrind收集用户时间统计信息,而不是实时统计信息。因此,如果线程相互中断,您将不会在Valgrind中看到它。您将得到的是执行每个函数所花费的实际时间。