我试图运行一个高度多线程的应用程序,并想测量其性能与不同的核心(0,1,2,3,4,5,6 ... 12)。用Google搜索,当我看到taskset的,为什么taskset对fedora没有影响?
taskset 0x00000003 ./my_app
,但是当我看到的Fedora的系统监控,那只能说明一个核心做100%,其他仅占12%,0%,...等。 有没有什么办法可以告诉程序在某个核心上运行。我也听说过一个选项,如-t #no的核心。像
./my_app -t2
为0和1的核心..但是这也没有影响 我究竟做错了任何一个可以请指引我走向正确的方向。
谢谢@jmetcalfe ..正在使用-t2和taskset类似..当我尝试运行像taskset-pc 2 29537这样的程序后运行时,仍然没有任何效果,我可以在系统监视器上看到只有一个核心) – pokche
该命令的作用是将进程29537移动到核心2.如果要强制将两个特定线程强制到2个核心上,则需要两个任务集命令,每个线程一个 – jmetcalfe
如何taskset -pc 0-1 5984。 (5984是my_app的进程ID)。这会把这个过程分成0和1个核心吗?假设进程有很多pthreads在进程的后台运行..而且你是否还知道其他任何方式来强制程序运行在特定的线程中,到目前为止我学到的是它可以完成,但是我的程序运行也必须支持它 – pokche