Escrevi um código de teste simples e testei a unidade de atualização de tempo do JAVA. Descobri que o ciclo de atualização do currentTimeMillis é de cerca de 15 ou 16ms, portanto a precisão é de apenas 15ms-16ms. O ciclo de atualização do nanoTime é de cerca de 800-1200 nanossegundos, portanto, tempos inferiores a 800ns não podem ser medidos. O código é o seguinte:
classe pública JavaTimeWinTest
{
público estático void principal(String[] args)
{
msTest();
nsTest();
}
vazio estático privado msTest()
{
tamanho interno = 6000000;
longo[] vezes = novo longo[tamanho];
for(int k = 0;k <tamanho;k++)
{
vezes[k] = System.currentTimeMillis();
}
preTime longo = vezes[0];
for(int k = 1;k <tamanho;k++)
{
if(times[k]>preTime)
{
System.out.print("valor atual em ms:" + vezes[k]);
System.out.println("Alterar valor:" + (vezes[k]-preTime));
préTempo = vezes[k];
}
}
}
vazio estático privado nsTest()
{
tamanho interno = 50;
longo[] vezes = novo longo[tamanho];
for(int k = 0;k <tamanho;k++)
{
vezes[k] = System.nanoTime();
}
preTime longo = vezes[0];
for(int k = 1;k <tamanho;k++)
{
if(times[k]>preTime)
{
System.out.print("ns valor atual:" + vezes[k]);
System.out.println("Alterar valor:" + (vezes[k]-preTime));
préTempo = vezes[k];
}
}
}
}
A saída da execução do código é a seguinte:
ms valor atual: 1262223891000 valor de alteração: 16
ms valor atual: 1262223891015 alterar valor: 15
ms valor atual: 1262223891031 alterar valor: 16
ms valor atual: 1262223891046 alterar valor: 15
ms valor atual: 1262223891062 alterar valor: 16
ms valor atual: 1262223891078 alterar valor: 16
ms valor atual: 1262223891093 alterar valor: 15
ms valor atual: 1262223891109 alterar valor: 16
ms valor atual: 1262223891125 alterar valor: 16
ms valor atual: 1262223891140 valor de alteração: 15
ms valor atual: 1262223891156 alterar valor: 16
ms valor atual: 1262223891171 alterar valor: 15
ms valor atual: 1262223891187 alterar valor: 16
ms valor atual: 1262223891203 alterar valor: 16
ms valor atual: 1262223891218 alterar valor: 15
ms valor atual: 1262223891234 alterar valor: 16
ms valor atual: 1262223891250 valor de alteração: 16
ms valor atual: 1262223891265 alterar valor: 15
ms valor atual: 1262223891281 alterar valor: 16
ms valor atual: 1262223891296 alterar valor: 15
ns valor atual: 4634097766894 alterar valor: 3631
ns valor atual: 4634097768012 alterar valor: 1118
ns valor atual: 4634097769129 alterar valor: 1117
ns valor atual: 4634097769967 alterar valor: 838
ns valor atual: 4634097771085 alterar valor: 1118
ns valor atual: 4634097771923 alterar valor: 838
ns valor atual: 4634097773040 alterar valor: 1117
ns valor atual: 4634097773879 alterar valor: 839
ns valor atual: 4634097774996 alterar valor: 1117
ns valor atual: 4634097775834 alterar valor: 838
ns valor atual: 4634097776952 alterar valor: 1118
ns valor atual: 4634097777790 alterar valor: 838
ns valor atual: 4634097778907 alterar valor: 1117
ns valor atual: 4634097780025 alterar valor: 1118
ns valor atual: 4634097780863 alterar valor: 838
ns valor atual: 4634097781980 alterar valor: 1117
ns valor atual: 4634097782818 alterar valor: 838
ns valor atual: 4634097783936 alterar valor: 1118
ns valor atual: 4634097784774 alterar valor: 838
ns valor atual: 4634097785891 alterar valor: 1117
ns valor atual: 4634097786729 alterar valor: 838
ns valor atual: 4634097787847 alterar valor: 1118
ns valor atual: 4634097788685 alterar valor: 838
ns valor atual: 4634097789802 alterar valor: 1117
ns valor atual: 4634097790920 alterar valor: 1118
ns valor atual: 4634097791758 alterar valor: 838
ns valor atual: 4634097792875 alterar valor: 1117
ns valor atual: 4634097793714 alterar valor: 839
ns valor atual: 4634097794831 alterar valor: 1117
ns valor atual: 4634097795669 alterar valor: 838
ns valor atual: 4634097796787 alterar valor: 1118
ns valor atual: 4634097797625 alterar valor: 838
ns valor atual: 4634097798742 alterar valor: 1117
ns valor atual: 4634097799580 alterar valor: 838
ns valor atual: 4634097800698 alterar valor: 1118
ns valor atual: 4634097801815 alterar valor: 1117
ns valor atual: 4634097802653 alterar valor: 838
ns valor atual: 4634097803771 alterar valor: 1118
ns valor atual: 4634097804609 alterar valor: 838
ns valor atual: 4634097805726 alterar valor: 1117
ns valor atual: 4634097806564 alterar valor: 838
ns valor atual: 4634097807682 alterar valor: 1118
ns valor atual: 4634097808520 alterar valor: 838
ns valor atual: 4634097809637 alterar valor: 1117
ns valor atual: 4634097810475 alterar valor: 838
ns valor atual: 4634097811593 alterar valor: 1118
ns valor atual: 4634097812431 alterar valor: 838
ns valor atual: 4634097813548 alterar valor: 1117
ns valor atual: 4634097814666 alterar valor: 1118
Este artigo vem do blog CSDN. Por favor, indique a fonte ao reimprimir: http://blog.csdn.net/chuan122345/archive/2009/12/31/5110727.aspx.