我们如何检查我们的程序多线程是否正在我们的程序中工作?

时间:2012-08-25 06:13:52

标签: c linux multithreading performance

我有源代码,并且在该代码中启用了多线程。我用ps -eLf命令检查了它显示的线程数列表,但我认为加载它并不是在所有的线程中分布。所以我想知道我们如何检查负载是否在所有线程中分布。

据我说完全负载是单线程。

实际上我想提高代码的性能。

我使用的是RHEL5.4 linux操作系统。编程语言是C。

如果有人知道,请告诉我.....

谢谢

2 个答案:

答案 0 :(得分:2)

运行:

ps -p PID_OF_YOUR_PROCESS -L -o pid,tid,pcpu,state,nlwp,args

你会看到类似这样的输出:

  PID   TID %CPU S NLWP COMMAND
 2305  2305  3.5 S    5 /usr/bin/cinnamon
 2305  2325  0.0 S    5 /usr/bin/cinnamon
 2305  2326  0.0 S    5 /usr/bin/cinnamon
 2305  2327  0.0 S    5 /usr/bin/cinnamon
 2305  2721  0.0 S    5 /usr/bin/cinnamon

TID是线程ID。您可以看到每个线程的cpu百分比。

希望能回答你的问题。

答案 1 :(得分:0)

使用top选项H会有所帮助。

有关详细信息,请参阅man top