リクエストの長さを監視するフィルターを作成しました。
long start = System.nanoTime();
...
long end = System.nanoTime();
これからミリ秒数を取得するにはどうすればよいですか?
リクエストの長さを監視するフィルターを作成しました。
long start = System.nanoTime();
...
long end = System.nanoTime();
これからミリ秒数を取得するにはどうすればよいですか?
(end - start) / 1000000
1 マイクロ秒 = 1000 ナノ秒
1 ミリ秒 = 1000 マイクロ秒
結果は切り捨てられますが、通常、真のナノ秒の精度は得られないことに注意してください (精度は OS によって異なります)。Javadoc からnanoTime()
:
この方法はナノ秒の精度を提供しますが、必ずしもナノ秒の精度ではありません。
それらを減算して、結果を10 ^ 6で割るだけです。
1 ナノ秒は 10^-9 秒で、10^-6 ミリ秒です。
http://en.wikipedia.org/wiki/Nano-
意味のある結果を得るには:
void procedure ( ... )
{
...
}
double measureProcedure ( double epsilon , ... )
{
double mean ;
double stderr = 2 * epsilon ;
while ( stderr > epsilon )
{
long start = System.nanoTime();
procedure ( ... ) ;
long end = System.nanoTime();
// recalculate mean , stderr
}
return ( mean / 1000000 ) ;
}
あなたはただ使うことができますSystem.currentTimeMillis()
。
警告:
戻り値の時間単位はミリ秒ですが、値の粒度は基盤となるオペレーティング システムに依存し、それよりも大きい場合があることに注意してください。たとえば、多くのオペレーティング システムでは、時間を数十ミリ秒単位で測定します。