2011-07-06 4 views
1

VisualVMでJConsoleのJTOPプラグインを使用しています。それは私にCPU(秒)使用量を教えてくれます。私はこれの意味を理解しようとしているのですか?jtop cpu seconds

  • a)時間はCPUの実行である です。
  • B秒で)時間は() スレッドが最初 時間(それは常に実行されていない可能性があります)
  • C)他のいくつかの時間のために走り始めましたか?

ありがとうございます。

答えて

1

JDK配布のdemo/managementフォルダからJTop Jconsoleプラグインを意味する場合: これはThreadMXBean.getThreadCpuTime(long)を使用してCPU時間を取得します。このメソッドのjavadocは、指定されたIDのスレッドのCPU時間の合計をナノ秒単位で返します。

返される値はナノ秒精度ですが、必ずしもナノ秒精度である必要はありません。実装がユーザーモード時間とシステムモード時間を区別する場合、返されるCPU時間は、スレッドがユーザーモードまたはシステムモードで実行された時間です。

指定されたIDのスレッドが生きていないか存在しない場合、このメソッドは-1を返します。 CPU時間測定が無効の場合、このメソッドは-1を返します。スレッドが開始され、まだ終了していない場合、スレッドは生きています。

スレッドが開始された後にCPU時間測定が有効になっている場合、Java仮想マシンの実装では、CPU時間測定が開始される時点まで機能が有効になるまでの任意の時間を選択できます。

戻り値: 指定されたIDのスレッドが存在する場合、指定されたIDのスレッドの合計CPU時間は、スレッドが生きている、およびCPU時間測定が有効になっています。そうでなければ-1。

この値は、テーブルに入れる前にプラグインで10E9で除算されているため、プロセスがCPUを使用していた時間を秒単位で表示します。

+0

申し訳ありませんが、私は私の執筆中に同じ回答が投稿されているようです。 (もっと速くなる必要があります...) – Ron

+0

粗い回答を追加してから、編集で詳しく説明します。 – Thomas

1

私はそうだと言いたいと思います。これまでスレッドがCPU上で実行していた時間。

実際にはThreadMXBeanのUIです。それのJavaDocから

実装は、ユーザ間のモード時とシステムモード時を区別する場合、返されるCPU時間は、現在のスレッドは、がユーザモードまたはシステムモードでを実行した時間の量であります。

このことは、全体のCPU時間もの実行であることを意味します。