2012-03-29 8 views
2

私はJavaスレッド上でコンテキスト切り替えの影響を判断しようとしています。それで、私は最初に「何回も奪取されたのですか」を知っていなければなりません。第2に、可能であれば、「スレッドが実行からどのくらい延期されたのか」。私はこれがJavaから行うことができることを非常に疑うだろうが、ちょっと!楽しいことは、不可能なことをすることです、そうですか? :) VMを再コンパイルしたり、ある種のLinuxツールやハックを使用する必要があっても、私は満足しています。だから私たちはそれができないことを知っているので、それをやりましょう。 :)スレッドがプリエンプションされた回数を数えますか?

EDIT:人々に来てください。もう一つの質問は優先順位に関連していた。私はあなたが簡単で退屈な質問を楽しむと思う。問題は明確かつ有効です。

+2

これは私にとって早すぎる最適化のようなものです。通常のJVMが提供していないことを求めています。あなたの質問を編集し、あなたがこれを行う必要がある理由を説明できますか? – Gray

+1

可能な複製http://stackoverflow.com/questions/9916876/is-it-possible-to-create-a-high-priority-thread-with-a-regular-jvm-one-that-wil – Gray

+1

それはできます、これにほとんど価値がない。 CPUのテスト、その他の環境要因の多さ、テストしているコードを考慮したばらつきに大きく依存します。 – ControlAltDel

答えて

4

あなたは(LinuxスレッドにあなたのJVMマップのJavaスレッドを想定)に興味を持っているJavaスレッドのためのLinuxのTID(スレッドID)を特定できる場合は、擬似ファイル/proc/<tid>/statusvoluntary_ctxt_switchesnonvoluntary_ctxt_switchesを含む多くの統計情報が含まれています。

+0

驚くばかり!そして人々は質問を終わらせたいと思った。 TS TSS – JohnPristine

2

明らかにあなたが望むものすべてを行うわけではありませんが、利用可能なThreadMXBeanjava.lang.managementで便利です。

+0

それはすでに何かです。コンテンション時間が長くなった場合、スレッドがブロック/中断されたことを意味します。そして、人々は質問を終わらせたい。 ts ts ts – JohnPristine

関連する問題