我有一个问题,我的应用程序随线程数线性扩展(想想 800 个线程在双核 CPU 上的性能是 400 个线程的两倍)。我的直觉告诉我线程正在休眠或被阻塞......但我在 callgrind 中看不到它。
callgrind 也测量函数时间,或者只是线程活动创建数据的时间。如果不清楚我要问什么......线程确实
i ++;
2 秒,然后
sleep(1);//thread will not be scheduled to run for min 1 second...
...将i++
是调用图的大约 100% 或大约 66%。