すべて、スレッドスイッチのプロセスを示すための方法やツールはありますか?つまり、特定の時刻に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. androidの複数のスレッドを切り替える方法
- 5. ビューを切り替える方法
- 6. モード切り替えとコマンドを切り離す方法
- 7. フィードバックdivを切り替えることはありません
- 8. バーチャル機能なしで機能を切り替えるより良い方法はありますか?
- 9. 他のビューの切り替えに切り替えるapp xcode
- 10. EclipseからIntelliJへの切り替え:ツールウィンドウを分割する方法はありますか?
- 11. jQueryはアンダーラインを切り替えます
- 12. チェックボックスはページビューを切り替えます
- 13. 実行時にTableAttributeを設定する方法はありますか、実行時にLINQタイプの切り替えを行う方法はありますか?
- 14. UIViewControllerから別のUIViewControllerに切り替える方法は?
- 15. ユーザーモードからカーネルモードに切り替える方法は?
- 16. iPhoneのネットワーク切り替えを処理する方法は?
- 17. Xcodeのウィンドウを切り替えるためのショートカットはありますか?
- 18. ビューコントローラを切り替える
- 19. キャンバスコンテキストを切り替える
- 20. タブを切り替える
- 21. ビューコントローラを切り替える
- 22. スタイルを切り替える
- 23. あるビューから別のビューに切り替える方法は?
- 24. 切り替えガレリアフルスクリーンモード
- 25. TCL APIを介してModelSimのリーフ名を切り替える方法はありますか?
- 26. jQueryクラスの切り替えとクッキーの値の切り替え?
- 27. メニューの切り替えの切り替え
- 28. /?バッチで切り替えますか?
- 29. Webpack開発者サーバーでbrowserHistoryからプログラムでhashHistoryに切り替える方法はありますか?
- 30. 指を使ってビューを切り替える方法は?
興味深い質問。私はこれが可能かどうか疑問に思いました。この種の動作を知る必要があるシナリオを想像してみてください。 –
私は時にはプログラム分析に便利だと思う、私はちょうど私のプログラムの実行をよりよく理解したいと思う、技術的に言えば、私はそれが可能だと思う – thisEric