我正在为游戏引擎编写一个任务调度器,并希望它能根据一些启发式算法自我优化。是否可能知道当前线程在两个时间点之间执行了多长时间?我想要计时任务的执行时间,并希望该时间不包括线程切换,原因有多个(更准确的测量结果以及了解我的线程被切换了多少次会很有用)。我希望在Linux上找到解决方案,但Windows的解决方案也可以。
尝试查看/proc/[pid]/task/[tid]/stat
格式类似于/proc/[pid]/stat,并在此处解释:http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html
*_getcpuclockid()
返回ENOENT
,那么你可以尝试设置CPU亲和性pthread_setaffinity_np()
、sched_setaffinity()
。 - jfs