لقد كتبت رمز اختبار بسيطًا واختبرت وحدة تحديث الوقت في JAVA، ووجدت أن دورة التحديث لـcurrentTimeMillis تبلغ حوالي 15 أو 16 مللي ثانية، لذا لا يمكن قياس الدقة التي تقل عن 15 مللي ثانية. تبلغ دورة تحديث nanoTime حوالي 800-1200 نانو ثانية، لذلك لا يمكن قياس الأوقات الأقل من 800 نانو ثانية. الرمز هو كما يلي:
فئة عامة JavaTimeWinTest
{
الفراغ العام الثابت الرئيسي (String[] args)
{
msTest();
nsTest();
}
msTest () باطلة ثابتة خاصة
{
حجم صحيح = 6000000؛
long[] times = new long[size];
ل(int ك = 0;ك <حجم;ك++)
{
times[k] = System.currentTimeMillis();
}
وقت مسبق طويل = مرات[0];
ل(int ك = 1;ك <حجم;ك++)
{
إذا (مرات [ك]> وقت ما قبل الوقت)
{
System.out.print("قيمة مللي ثانية الحالية:" + مرات[ك]);
System.out.println("تغيير القيمة:" + (times[k]-preTime));
وقت مسبق = مرات[ك];
}
}
}
فراغ ثابت خاص nsTest ()
{
حجم صحيح = 50؛
long[] times = new long[size];
ل(int ك = 0;ك <حجم;ك++)
{
times[k] = System.nanoTime();
}
وقت مسبق طويل = مرات[0];
ل(int ك = 1;ك <حجم;ك++)
{
إذا (مرات [ك]> وقت ما قبل الوقت)
{
System.out.print("ns القيمة الحالية:" + times[k]);
System.out.println("تغيير القيمة:" + (times[k]-preTime));
وقت مسبق = مرات[ك];
}
}
}
}
مخرجات تشغيل الكود هي كما يلي:
القيمة الحالية مللي ثانية: 1262223891000 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891015 قيمة التغيير: 15
القيمة الحالية مللي ثانية: 1262223891031 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891046 قيمة التغيير: 15
القيمة الحالية مللي ثانية: 1262223891062 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891078 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891093 قيمة التغيير: 15
القيمة الحالية مللي ثانية: 1262223891109 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891125 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891140 قيمة التغيير: 15
القيمة الحالية مللي ثانية: 1262223891156 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891171 قيمة التغيير: 15
القيمة الحالية مللي ثانية: 1262223891187 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891203 قيمة التغيير: 16
مللي القيمة الحالية: 1262223891218 قيمة التغيير: 15
القيمة الحالية مللي ثانية: 1262223891234 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891250 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891265 قيمة التغيير: 15
القيمة الحالية مللي ثانية: 1262223891281 قيمة التغيير: 16
القيمة الحالية مللي ثانية: 1262223891296 قيمة التغيير: 15
القيمة الحالية: 4634097766894 قيمة التغيير: 3631
القيمة الحالية: 4634097768012 قيمة التغيير: 1118
القيمة الحالية: 4634097769129 قيمة التغيير: 1117
القيمة الحالية: 4634097769967 قيمة التغيير: 838
القيمة الحالية: 4634097771085 قيمة التغيير: 1118
القيمة الحالية: 4634097771923 قيمة التغيير: 838
القيمة الحالية: 4634097773040 قيمة التغيير: 1117
القيمة الحالية: 4634097773879 قيمة التغيير: 839
القيمة الحالية: 4634097774996 قيمة التغيير: 1117
القيمة الحالية: 4634097775834 قيمة التغيير: 838
القيمة الحالية: 4634097776952 قيمة التغيير: 1118
القيمة الحالية: 4634097777790 قيمة التغيير: 838
القيمة الحالية: 4634097778907 قيمة التغيير: 1117
القيمة الحالية: 4634097780025 قيمة التغيير: 1118
القيمة الحالية: 4634097780863 قيمة التغيير: 838
القيمة الحالية: 4634097781980 قيمة التغيير: 1117
القيمة الحالية: 4634097782818 قيمة التغيير: 838
القيمة الحالية: 4634097783936 قيمة التغيير: 1118
القيمة الحالية: 4634097784774 قيمة التغيير: 838
القيمة الحالية: 4634097785891 قيمة التغيير: 1117
القيمة الحالية: 4634097786729 قيمة التغيير: 838
القيمة الحالية: 4634097787847 قيمة التغيير: 1118
القيمة الحالية: 4634097788685 قيمة التغيير: 838
القيمة الحالية: 4634097789802 قيمة التغيير: 1117
القيمة الحالية: 4634097790920 قيمة التغيير: 1118
القيمة الحالية: 4634097791758 قيمة التغيير: 838
القيمة الحالية: 4634097792875 قيمة التغيير: 1117
القيمة الحالية: 4634097793714 قيمة التغيير: 839
القيمة الحالية: 4634097794831 قيمة التغيير: 1117
القيمة الحالية: 4634097795669 قيمة التغيير: 838
القيمة الحالية: 4634097796787 قيمة التغيير: 1118
القيمة الحالية: 4634097797625 قيمة التغيير: 838
القيمة الحالية: 4634097798742 قيمة التغيير: 1117
القيمة الحالية: 4634097799580 قيمة التغيير: 838
القيمة الحالية: 4634097800698 قيمة التغيير: 1118
القيمة الحالية: 4634097801815 قيمة التغيير: 1117
القيمة الحالية: 4634097802653 قيمة التغيير: 838
القيمة الحالية: 4634097803771 قيمة التغيير: 1118
القيمة الحالية: 4634097804609 قيمة التغيير: 838
القيمة الحالية: 4634097805726 قيمة التغيير: 1117
القيمة الحالية: 4634097806564 قيمة التغيير: 838
القيمة الحالية: 4634097807682 قيمة التغيير: 1118
القيمة الحالية: 4634097808520 قيمة التغيير: 838
القيمة الحالية: 4634097809637 قيمة التغيير: 1117
القيمة الحالية: 4634097810475 قيمة التغيير: 838
القيمة الحالية: 4634097811593 قيمة التغيير: 1118
القيمة الحالية: 4634097812431 قيمة التغيير: 838
القيمة الحالية: 4634097813548 قيمة التغيير: 1117
القيمة الحالية: 4634097814666 قيمة التغيير: 1118
هذه المقالة مأخوذة من مدونة CSDN، يرجى الإشارة إلى المصدر عند إعادة الطباعة: http://blog.csdn.net/chuan122345/archive/2009/12/31/5110727.aspx.