0
Java 8のLocalTimeとInstantを使用してカウンタを実装しようとしましたが、どちらもうまくいきますが、出力が少し混乱します!今まで私がインスタントを使用したとき、私は同じループの値が小さくなったのですか?何か案が?Java 8でカウンタを実装する最も良い方法は何ですか?
// using Instant
Instant before=Instant.now();
// something time consuming
for(int i=1;i<100000000;i++);
Instant after=Instant.now();
Duration duration=Duration.between(before, after);
System.out.println(duration.toMillis());
// using LocalTime
LocalTime xBefore=LocalTime.now();
for(int i=1;i<100000000;i++);
LocalTime yAfter=LocalTime.now();
System.out.println(ChronoUnit.MILLIS.between(xBefore, yAfter));
Holgerに言及してくれてありがとう! –
*経過時間*と現実世界(「ウォールクロック」)時間には、システムクロックがNTP修正などの影響を受ける可能性があるため、大きな違いがあります。 *経過時間*を測定する場合は、['System.nanoTime()'](https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#nanoTime- - )を計算し、差を計算します。しかし、JVMのオプティマイザが処理を実行するにつれて、実行時間が短くなるのは正常です。リンクされたQ&Aでもっと読むことができます... – Holger