簡単なテストコードを書いてJAVAの時刻更新単位をテストしてみたところ、currentTimeMillisの更新周期は15~16ms程度であり、15ms未満の時刻は計測できないことが分かりました。 nanoTime の更新周期は約 800 ~ 1200 ナノ秒であるため、800 ナノ秒未満の時間は計測できません。コードは次のとおりです。
パブリック クラス JavaTimeWinTest
{
public static void main(String[] args)
{
msTest();
nsTest();
}
プライベート静的 void msTest()
{
int サイズ = 6000000;
long[] 回 = 新しいlong[サイズ];
for(int k = 0;k <サイズ;k++)
{
時間[k] = System.currentTimeMillis();
}
長い preTime = 回 [0];
for(int k = 1;k <サイズ;k++)
{
if(回[k]>preTime)
{
System.out.print("ミリ秒の現在値:" + 回[k]);
System.out.println("値の変更:" + (times[k]-preTime));
preTime = 回[k];
}
}
}
プライベート静的 void nsTest()
{
int サイズ = 50;
long[] 回 = 新しいlong[サイズ];
for(int k = 0;k <サイズ;k++)
{
回[k] = System.nanoTime();
}
長い preTime = 回 [0];
for(int k = 1;k <サイズ;k++)
{
if(回[k]>preTime)
{
System.out.print("ns 現在値:" + 回[k]);
System.out.println("値の変更:" + (times[k]-preTime));
preTime = 回[k];
}
}
}
}
コードを実行すると出力は次のようになります。
ms 現在値: 1262223891000 変更値: 16
ms 現在値: 1262223891015 変更値: 15
ms 現在値: 1262223891031 変更値: 16
ms 現在値: 1262223891046 変更値: 15
ms 現在値: 1262223891062 変更値: 16
ms 現在値: 1262223891078 変更値: 16
ms 現在値: 1262223891093 変更値: 15
ms 現在値: 1262223891109 変更値: 16
ms 現在値: 1262223891125 変更値: 16
ms 現在値: 1262223891140 変更値: 15
ms 現在値: 1262223891156 変更値: 16
ms 現在値: 1262223891171 変更値: 15
ms 現在値: 1262223891187 変更値: 16
ms 現在値: 1262223891203 変更値: 16
ms 現在値: 1262223891218 変更値: 15
ms 現在値: 1262223891234 変更値: 16
ms 現在値: 1262223891250 変更値: 16
ms 現在値: 1262223891265 変更値: 15
ms 現在値: 1262223891281 変更値: 16
ms 現在値: 1262223891296 変更値: 15
ns 現在値: 4634097766894 変更値: 3631
ns 現在値: 4634097768012 変更値: 1118
ns 現在値: 4634097769129 変更値: 1117
ns 現在値: 4634097769967 変更値: 838
ns 現在値: 4634097771085 変更値: 1118
ns 現在値: 4634097771923 変更値: 838
ns 現在値: 4634097773040 変更値: 1117
ns 現在値: 4634097773879 変更値: 839
ns 現在値: 4634097774996 変更値: 1117
ns 現在値: 4634097775834 変更値: 838
ns 現在値: 4634097776952 変更値: 1118
ns 現在値: 4634097777790 変更値: 838
ns 現在値: 4634097778907 変更値: 1117
ns 現在値: 4634097780025 変更値: 1118
ns 現在値: 4634097780863 変更値: 838
ns 現在値: 4634097781980 変更値: 1117
ns 現在値: 4634097782818 変更値: 838
ns 現在値: 4634097783936 変更値: 1118
ns 現在値: 4634097784774 変更値: 838
ns 現在値: 4634097785891 変更値: 1117
ns 現在値: 4634097786729 変更値: 838
ns 現在値: 4634097787847 変更値: 1118
ns 現在値: 4634097788685 変更値: 838
ns 現在値: 4634097789802 変更値: 1117
ns 現在値: 4634097790920 変更値: 1118
ns 現在値: 4634097791758 変更値: 838
ns 現在値: 4634097792875 変更値: 1117
ns 現在値: 4634097793714 変更値: 839
ns 現在値: 4634097794831 変更値: 1117
ns 現在値: 4634097795669 変更値: 838
ns 現在値: 4634097796787 変更値: 1118
ns 現在値: 4634097797625 変更値: 838
ns 現在値: 4634097798742 変更値: 1117
ns 現在値: 4634097799580 変更値: 838
ns 現在値: 4634097800698 変更値: 1118
ns 現在値: 4634097801815 変更値: 1117
ns 現在値: 4634097802653 変更値: 838
ns 現在値: 4634097803771 変更値: 1118
ns 現在値: 4634097804609 変更値: 838
ns 現在値: 4634097805726 変更値: 1117
ns 現在値: 4634097806564 変更値: 838
ns 現在値: 4634097807682 変更値: 1118
ns 現在値: 4634097808520 変更値: 838
ns 現在値: 4634097809637 変更値: 1117
ns 現在値: 4634097810475 変更値: 838
ns 現在値: 4634097811593 変更値: 1118
ns 現在値: 4634097812431 変更値: 838
ns 現在値: 4634097813548 変更値: 1117
ns 現在値: 4634097814666 変更値: 1118
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/chuan122345/archive/2009/12/31/5110727.aspx