JavaまたはPythonで関数のCPUサイクルを計算する方法を知りたいと思います。Java関数のCPUサイクルを計算する
私はJavaで試してみた:(OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean()
。 osbean.getProcessCpuTime();
結果はありません。 Pythonで
JavaまたはPythonで関数のCPUサイクルを計算する方法を知りたいと思います。Java関数のCPUサイクルを計算する
私はJavaで試してみた:(OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean()
。 osbean.getProcessCpuTime();
結果はありません。 Pythonで
、
使用timeit.default_timer();
それはあなたのプラットフォームのための最も正確なオプションを使用しています。 Ubuntuでは、代わりにtime.time()
を使用します。
timeit.default_timer()
プラットフォーム固有の方法で、デフォルトのタイマーを定義します。 Windowsの場合、time.clock()
はマイクロ秒の細分性を持ちますが、time.time()
の粒度は1/60th
です。 Unixでは、time.clock()
は1/100th
の第2の粒度を持ち、time.time()
はずっと正確です。いずれのプラットフォームでも、default_timer()
は、CPU時間ではなく壁時計の時間を測定します。つまり、同じコンピュータ上で実行されている他のプロセスがタイミングを妨げる可能性があります。 JAVAで
、
System.currentTimeMillis()
は今までwall-clock time、決してCPU時間を測定します。currentTimeMillis()
より正確で(悪くならない)ことがよくあります。ThreadMXBean.getThreadCPUTime()
は、特定のスレッドがどれくらいのCPU時間を使用しているかを知るのに役立ちます。興味のあるスレッドのid
を見つけるには、ManagementFactory.getThreadMXBean()
をThreadMXBeanに、Thread.getId()
を使用してください。このメソッドは、すべてのJVMでサポートされる必要はありません。
些細なことではありません。以下はJavaの出発点です:http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark-in-java – NPE
何かをするのにかかる時間Javaは多くの要因によって異なります。同じ機能の実行には、何が実行され、どのように実行されるかに応じて、50ミリ秒かかるか、まったく時間がかかりません。 –