什么-XX:+ UseGetTimeOfDay作为参数呢?

时间:2010-10-13 09:05:21

标签: java

虽然在Java应用程序上工作时遇到了java命令的-XX:+UseGetTimeOfDay参数,但我找不到有关它的更多信息。

首先,-XX是什么意思,UseGetTimeOfDay会提供什么?我以前没见过这些,我想知道他们做了什么,可能是我的应用程序特有的东西,还是这些标准的Java参数?

2 个答案:

答案 0 :(得分:2)

我不知道它现在是否仍然有用,但我发现它上面有some documentation

  

指示JVM使用GetTimeOfDay调用而不是早期版本中使用的机制,其中自应用程序启动以来的cpu tick数用于计算当前时间。使用此新机制,使用date(1),adjtime(2)或时间同步实用程序(如ntp)对系统日期或时间的更改不会反映在Java™返回的日期和时间中,直到重新启动该进程。如果您的应用程序要求Java™立即反映此类系统时间更改,则可以使用-XX:+ UseGetTimeOfDay选项,但是您可能会注意到性能下降。

通常,-X和-XX标志是控制JVM(并且是特定于VM)的标志。

来自HotSpot options page(未列出此内容):

  
      
  • 以-X开头的选项是非标准的(不保证在所有VM实现上都受支持),并且在JDK的后续版本中如有更改,恕不另行通知。
  •   
  • 使用-XX指定的选项不稳定,不建议临时使用。这些选项如有更改,恕不另行通知。
  •   

答案 1 :(得分:0)

找到this thread,其中说:

  

HotSpot JVM使用   gettimeofday()系统调用获取   日期和时间信息。

     

出于性能原因,新的   使用数字的机制   自应用程序以来的CPU滴答声   开始,计算当前   时间。结果,改变了   系统日期或时间使用日期(1),   adjtime(2)或时间同步   像ntp这样的实用程序不会   反映在日期和时间   Java程序返回,直到   进程重新启动。

     

如果您的申请需要   系统时间立即改变   反映,你可以使用   -XX:+ UseGetTimeOfDay选项告诉JVM使用gettimeofday调用   而不是新的,轻量级的   机制。但是你可能会注意到   表现下降。