1

ソース コードがあり、そのコードでマルチスレッドが有効になっています。ps -eLf コマンドで表示されるスレッド数のリストを確認しましたが、負荷がすべてのスレッドに分散されていないと思うので、負荷がすべてのスレッドに分散されているかどうかを確認する方法を知りたいです。

私によると、完全な負荷はシングルスレッドになります。

実際、コードのパフォーマンスを改善したいと考えています。

RHEL5.4 Linux OS を使用しています。プログラミング言語はCです。

知ってる人いたら教えてください.....

ありがとう

4

2 に答える 2

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 パーセンテージを確認できます。

それがあなたの質問に答えることを願っています。

于 2012-08-25T06:20:56.540 に答える
0

topのオプションを使用Hすると役立ちます。

詳しくはご覧くださいman top

于 2012-08-25T07:28:20.607 に答える