我在Java中取当前时间(精确到毫秒),long lTimestamp = System.currentTimeMillis();
发现取得不准确。(此程序和其它有精确时间的程序交互,另外系统已经过去了4ms,Java程序中
前后取得的数值是一样的)。
我查了一下网上的资料:*目前看到Java微秒支持用的都是native方法,不知道有没有非native方法获取微秒的支持
*那还是和硬件相关的.有些处理器是有高精度运行计数器的,vc有方法可以取到的.
java可能不提供吧.毕竟这和硬件相关了.JDK的设计一直是取最小公分母(1.4之后开始不这么做了,在性能上面提高很多)
猜测年底发布的JDK1.5会把取得精确微秒的方法加入,其实就是增加了各个平台的native调用而已.
*:现在Java的毫秒取得都是不精确的.我用的是JDK1.6 还是这样,有办法解决吗?

解决方案 »

  1.   

    系统计时器的当前值,以毫微秒为单位。System.nanoTime();
      

  2.   

    System.nanoTime(); 
    这个是毫微秒,比毫秒精确
      

  3.   

    System.nanoTime() 好像不错,至少两次有差值了
      

  4.   

    java实时性很差的,所以取时间有误差很正常
      

  5.   

    毫微秒 System.nanoTime(); 可以试一下这个。
      

  6.   

    long startTime = System.nanoTime();
    // ... the code being measured ...
    long estimatedTime = System.nanoTime() - startTime;我想大部分情况下应该满足你的要求了。