0

非ネイティブスレッドの「スレッドCPU時間」をどのように定義しますか?より具体的には、JVMでどのように定義されますか(CPUはおそらくJVMから抽象化されているため、定義は下位レベルのプロセスとは少し異なる場合があります)。

私はこの測定のJVM実装から作業しています:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/management/ThreadMXBean.htmlこれは「スレッド」を直接定義していないようですCPU時間」は、の直接測定です。

4

2 に答える 2

1

スレッド CPU 時間は、すでにかなり一般的な用語です。基本的に、特定のスレッドで CPU が費やした時間を表します。

JVM上にあるため、異なる定義はありません。考慮すべき唯一の重要な部分は、JVMで実際に測定できるかどうかです。する人もいればしない人もいます。

于 2012-11-20T22:40:22.113 に答える
1

必ずしも抽象化を破る必要はありません。POSIX は、スレッドごとの CPU 時間を測定する方法を指定しています。そして、Windowsがあります:)

ホットスポット ソースを検索すると、次のように表示されます。

ホットスポット/src/share/vm/runtime/os.hpp

  // JVMTI & JVM monitoring and management support
  // The thread_cpu_time() and current_thread_cpu_time() are only
  // supported if is_thread_cpu_time_supported() returns true.
  // They are not supported on Solaris T1.

hotspot/src/os/linux/vm/os_linux.cppには、この目的で使用されているclock_gettimeとともにpthread_getcpuclockidが表示されます

hotspot/src/os/windows/vm/os_windows.cppでは、GetThreadTimesが使用されていることがわかります。

于 2012-11-20T22:41:41.537 に答える