为了比较两个循环语句运行耗费的时间,
我在函数中,第一个循环开始前,第一个循环结束后第二个循环开始前,和第二个循环结束后,共三个地方调用了System.currentTimeMillis()函数。
分别赋给long a1,a2,a3 。
然后计算了一下差值
long d1 = a2 - a1;
long d2 = a3 -a2;
代码大概就是这个意似,
但是却发现程序在运行时 d1 和 d2 两个中有一个为0,请问这是正常现象吗?
如果真实地记录一些语句运行耗费的时间?
java 计时 问题
答案:2 悬赏:0 手机版
解决时间 2021-04-16 01:55
- 提问者网友:佞臣
- 2021-04-15 10:58
最佳答案
- 五星知识达人网友:行路难
- 2021-03-20 02:08
你这个问题是时间精确度的问题;
System.currentTimeMillis();
返回以毫秒为单位的当前时间。
System.nanoTime();
返回最准确的可用系统计时器的当前值,以毫微秒为单位。
把currentTimeMillis换成nanoTime应该就能看出区别了
System.currentTimeMillis();
返回以毫秒为单位的当前时间。
System.nanoTime();
返回最准确的可用系统计时器的当前值,以毫微秒为单位。
把currentTimeMillis换成nanoTime应该就能看出区别了
全部回答
- 1楼网友:第四晚心情
- 2021-02-12 06:28
java.util.calendar库类中的gettimeinmillis()方法可以测试;它返回当前calendar的时间值(long型),以毫秒为单位。可以在执行算法前后分别获取时间(单位为毫秒),然后相减就得到算法的耗时值了!
eg:·······
long methodago=calendar.gettimeinmillis();
{算法}
long methodend=calendar.gettimeinmillis();
long times=methodend-methodago;
system.out.println(times);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯