컴퓨터활용/티맥스

JVM 부팅시 시스템시간을 읽어 온답니다

멜번초이 2008. 4. 16. 17:04
반응형

안녕하세요. MW기술실 백인준입니다.

결론 부터 말씀 드리자면 일반적인 환경에서는 JVM이 처음 기동될때만 시스템에서 시간을 읽어오고 (gettimeofday() system call 사용)
그 다음부터는 JVM 자체적으로 계산하여 사용됩니다.
JDK 1.3.1 이전에는 시간을 출력할 필요가 있을때 매번 시스템에서 읽어왔으나 성능문제로 방식이 변경되었습니다.

-XX:+UseGetTimeOfDay 옵션을 통해서 매번 시스템 시간을 읽어오도록 변경할 수 있으나

성능상 추천하지 않습니다. 자세한것은 아래 원문을 참고하세요..

http://www.hp.com/products1/unix/java/java2/sdkrte14/infolibrary/sdk_rnotes_1.4.2.17.html

The HotSpot JVM uses the gettimeofday() system call to obtain date and time information.

For performance reasons a new mechanism is used that uses the number of CPU ticks since the application started, to calculate the current time. As a result, changes to the system date or time using date(1), adjtime(2) or time synchronization utilities such as ntp will not be reflected in the date and time that the Java program returns, until the process is restarted.

If your application requires that system time changes are immediately reflected, you can use the

-XX:+UseGetTimeOfDay option to tell the JVM to use the gettimeofday call instead of the new, lightweight mechanism. However you may notice a drop in performance


반응형