gpt4 book ai didi

c++ - valgrind callgrind是使用total time还是 "execution time"来创建数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:42 25 4
gpt4 key购买 nike

我有一个问题,我的应用程序随线程数线性扩展(想想 800 个线程在双核 CPU 上的性能是 400 个线程的两倍)。我的直觉告诉我线程正在休眠或被阻塞......但我在 callgrind 中看不到它。

callgrind 也测量函数时间,或者只是线程处于事件状态以创建数据的时间。如果不清楚我问的是什么......线程做

i ++;

2秒,然后

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

... i++ 将大约为调用图的 100% 或大约 66%。

最佳答案

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

关于c++ - valgrind callgrind是使用total time还是 "execution time"来创建数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com