java测试,Java时间更新周期测试

写了个简单的测试代码,测试了JAVA的时间更新单元,发现currentTimeMillis的更新周期大约是15或16ms,所以精度也就在15ms-16ms,低于15ms的时间是无法测量出来的。而nanoTime的更新周期大约在800-1200纳秒左右,因此低于 800ns的时间无法测量出来。代码如下:
public class JavaTimeWinTest
{
public static void main(String[] args)
{
msTest();
nsTest();
}

private static void msTest()
{
int size = 6000000;
long[] times = new long[size];

for(int k = 0 ;k <size;k++)
{
times[k] = System.currentTimeMillis();
}

long preTime = times[0] ;
for(int k = 1 ;k <size;k++)
{
if(times[k]>preTime)
{
System.out.print("ms 当前值:" + times[k]);
System.out.println(" 变化值:" + (times[k]-preTime));
preTime = times[k];
}
}
}

private static void nsTest()
{
int size = 50;
long[] times = new long[size];

for(int k = 0 ;k <size;k++)
{
times[k] = System.nanoTime();
}

long preTime = times[0] ;
for(int k = 1 ;k <size;k++)
{
if(times[k]>preTime)
{
System.out.print("ns 当前值:" + times[k]);
System.out.println(" 变化值:" + (times[k]-preTime));
preTime = times[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

Tags:  测试周期 java测试工具 测试的生命周期 java测试题 软件测试生命周期 java测试

延伸阅读

最新评论

发表评论