Java中的System.nano()很慢

System.nano()调用耗时450 nano,超级慢,比new Object()的操作慢100倍。比System.currentMillis()慢20多倍。

经一群无聊好事者查证,System.nanoTime()在linux下的实现,最终调用clock_gettime系统函数。

100万次调用耗时,java语言中System.nanoTime()和C语言中的clock_gettime()调用时间基本一致,所以System.nanoTime()慢的原因就是系统调用clock_gettime。

无聊好事者请注意,自行测试System.nanoTime()性能时,要这样写:
for (int i = 0; i < 1000 * 1000; ++i) {
	long v = System.nanoTime();
}

而不能这样写:
for (int i = 0; i < 1000 * 1000; ++i) {
	System.nanoTime();
}

你可能感兴趣的:(java,jvm,linux,OS,F#)