すべて、スレッドスイッチのプロセスを示すための方法やツールはありますか?つまり、特定の時刻にCPUがどのスレッドによって取得されたかを知ることができます。また、時間のコンテキスト切り替えコストもあります。スレッドを切り替える方法はありますか?
3
A
答えて
2
SystemTapはこの種のものに便利です。これには缶詰の例sched_switch.stpがあります。
ただし、スイッチの経過時間は測定されません。それは少なくとも2つの理由から難しいようです。まず、デルタを測定するための入口と出口の適切なプローブを決定しなければならず、今は何も探していません。 (関連するプロセス内のカーネルの出入りはまあまあ近似かもしれませんが、現時点ではそれは分かりませんが)コンテキストスイッチを避けることがどれだけ重要であるかを知りたければ、余分なCPUキャッシュミスがタスクをより頻繁に切り替えることを考慮しなかった場合は、不完全な画像になります。私は答えを得るための唯一の良い方法は実験的かもしれないと思います。特に、スケジューリングパラメータを調整して(cfs-tuning.pdfを参照)、頻繁なコンテキスト切り替えがプログラムの速度にどのように影響するかを確認することができます。
1
カーネルにftraceがコンパイルされている場合は、sched_switch
トレーサを使用して、プロセスウェイクアップとコンテキストスイッチのトレースを出力できます。あなたのタスクがRTスケジュールされている場合は、wakeup
トレーサを使用して、タスクのウェイクアップとスケジューリングの間の最大レイテンシを知ることもできます。詳細については、Documentation/trace/ftrace.txtを参照してください。
関連する問題
- 1. スレッドを切り替える方法
- 2. スレッド切り替え
- 3. スレッドを切り替える
- 4. iframeへの切り替え方法/切り替え方法
- 5. セグメンテーションフォールトを与えるあるスレッドから別のスレッドに切り替える
- 6. フラグメントをオーバーラップさせずに切り替える方法はありますか?
- 7. サブライムテキストの選択を切り替える方法はありますか?
- 8. androidの複数のスレッドを切り替える方法
- 9. メニューバーを切り替える方法
- 10. Sqlテーブルを切り替える方法
- 11. ビューを切り替える方法
- 12. はクラススコープを切り替える必要があります
- 13. 切り替える方法UI-SREF
- 14. モード切り替えとコマンドを切り離す方法
- 15. リンクのある投稿のコメントを切り替える方法
- 16. フィードバックdivを切り替えることはありません
- 17. 与えられたスレッドのタスクを切り替える
- 18. 切り替え
- 19. 切り替え
- 20. バーチャル機能なしで機能を切り替えるより良い方法はありますか?
- 21. ボタンの切り替え方法
- 22. Three.js - VR /ステレオエフェクトモードの切り替え方法
- 23. ステータスの切り替え方法TRANSLUCENT?
- 24. フラグメント間の切り替え方法
- 25. ラジオボタンの切り替え方法
- 26. 他のビューの切り替えに切り替えるapp xcode
- 27. EclipseからIntelliJへの切り替え:ツールウィンドウを分割する方法はありますか?
- 28. 実行時にTableAttributeを設定する方法はありますか、実行時にLINQタイプの切り替えを行う方法はありますか?
- 29. tabBarController?.selectedIndexはVCの切り替えではありません
- 30. チェックボックスはページビューを切り替えます
興味深い質問。私はこれが可能かどうか疑問に思いました。この種の動作を知る必要があるシナリオを想像してみてください。 –
私は時にはプログラム分析に便利だと思う、私はちょうど私のプログラムの実行をよりよく理解したいと思う、技術的に言えば、私はそれが可能だと思う – thisEric