浏览 5407 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-29
long stime = System.currentTimeMillis(); String[] strs = str.split(" "); long sendtime = System.currentTimeMillis(); System.out.println("String.split() spend time:" + (sendtime - stime)); 输出的结果为:String.split() spend time:0 为什么统计出来的时间为0呢??但有时候它还是会出来一个具体的数字。 求解。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-29
public static long currentTimeMillis()返回以毫秒为单位的当前时间。注意,当返回值的时间单位是毫秒时,值的粒度取决于基础操作系统,并且粒度可能更大。例如,许多操作系统以几十毫秒为单位测量时间。
要测试执行时间请用 nanoTime() public static long nanoTime()返回最准确的可用系统计时器的当前值,以毫微秒为单位。 此方法只能用于测量已过的时间,与系统或钟表时间的其他任何时间概念无关。返回值表示从某一固定但任意的时间算起的毫微秒数(或许从以后算起,所以该值可能为负)。此方法提供毫微秒的精度,但不是必要的毫微秒的准确度。它对于值的更改频率没有作出保证。在取值范围大于约 292 年(263 毫微秒)的连续调用的不同点在于:由于数字溢出,将无法准确计算已过的时间。 以上内容来之JDK的API说明,注意去看源代码的注释都有 |
|
返回顶楼 | |
发表时间:2011-09-29
你将中间的操作放大10w倍。如果还不理想,100w知道得到你想要的值。
主要因为你的操作几乎可以忽略不计,说简单点就是太简单了,外面套个循环就可以了~ |
|
返回顶楼 | |
发表时间:2011-09-29
这种问题为什么不好好想象就网上发?难道API都不看的么?直接去看API就知道结果的问题,怪不得都说帖子质量下降。。。。
|
|
返回顶楼 | |