使用TBB测量线程空闲时间

时间:2012-08-12 22:16:23

标签: tbb benchmarking

我有一个线程应用程序,其中包含代码的所有部分的时序块,我认为是性能密集型的。这些部分足够长,即使在最终生产运行中,时序代码也可以保持活动状态。该应用程序有一堆工作线程从任务池中拉出工作。

在我当前的自定义池实现中,我为每个工作线程计算两次额外的时间:(1)等待空池为作业到达所花费的空闲时间量,以及(2)“丢失”时间量没有通过空转或时间块(表示我错过的性能密集区域)来解释。

我正在考虑将我的代码转换为英特尔线程构建模块。在使用TBB任务时是否可以测量空闲时间?可以通过从总挂钟时间间隔中减去每个定时部分来轻松计算空闲时间和丢失时间之和,但是分别获得每个时间部分需要特殊支持(或者可能是一个特殊的空闲任务,具有低优先级,旋转试图抢占自己?)

注意:我也在http://software.intel.com/en-us/forums/showthread.php?t=107203处提出了这个问题,并会同步任何答案。

0 个答案:

没有答案