Hôm nay tôi đã làm một chút Benchmark nhanh chóng để kiểm tra hiệu suất tốc độ của System.nanoTime()
và System.currentTimeMillis()
:Tại sao cách System.nanoTime() chậm hơn (hiệu suất) hơn System.currentTimeMillis()?
long startTime = System.nanoTime();
for(int i = 0; i < 1000000; i++) {
long test = System.nanoTime();
}
long endTime = System.nanoTime();
System.out.println("Total time: "+(endTime-startTime));
Đây là kết quả:
System.currentTimeMillis(): average of 12.7836022/function call
System.nanoTime(): average of 34.6395674/function call
Tại sao sự khác biệt về tốc độ chạy quá lớn?
hệ thống Benchmark:
Java 1.7.0_25
Windows 8 64-bit
CPU: AMD FX-6100
bản sao có thể có của [Tại sao System.nanoTime() và System.currentTimeMillis() trôi dạt quá nhanh?] (Http://stackoverflow.com/questions/5839152/why-do-system-nanotime-and-system -currenttimemillis-drift-apart-so-nhanh) – chrylis
Bài đăng này có thể trả lời câu hỏi của bạn: http://stackoverflow.com/a/5839267/658907 – matts
'nanoTime' chính xác hơn' currentTimeMillis', đó có thể là lý do. – Thomas