m*r 发帖数: 22 | 1 计算的是Red black tree sort的时间
我用的是System.currentTimeMillis();
最大的 array size 是60000,结果出来的时候还是0,就无法去比较
有什么higher resolution timer么?
本来要求的最大array size是20000,那样search sort的时间都是0。
现在增加了,sort的时间还是0
怎么解决这个问题呢??
多谢 |
f********h 发帖数: 149 | 2 cast it to double first
【在 m*r 的大作中提到】 : 计算的是Red black tree sort的时间 : 我用的是System.currentTimeMillis(); : 最大的 array size 是60000,结果出来的时候还是0,就无法去比较 : 有什么higher resolution timer么? : 本来要求的最大array size是20000,那样search sort的时间都是0。 : 现在增加了,sort的时间还是0 : 怎么解决这个问题呢?? : 多谢
|
m******t 发帖数: 2416 | 3 JDK 1.5 introduced System.nanoTime() which might be useful for you.
【在 m*r 的大作中提到】 : 计算的是Red black tree sort的时间 : 我用的是System.currentTimeMillis(); : 最大的 array size 是60000,结果出来的时候还是0,就无法去比较 : 有什么higher resolution timer么? : 本来要求的最大array size是20000,那样search sort的时间都是0。 : 现在增加了,sort的时间还是0 : 怎么解决这个问题呢?? : 多谢
|
A**o 发帖数: 1550 | 4 你的计算时间的代码有误吧?
【在 m*r 的大作中提到】 : 计算的是Red black tree sort的时间 : 我用的是System.currentTimeMillis(); : 最大的 array size 是60000,结果出来的时候还是0,就无法去比较 : 有什么higher resolution timer么? : 本来要求的最大array size是20000,那样search sort的时间都是0。 : 现在增加了,sort的时间还是0 : 怎么解决这个问题呢?? : 多谢
|
xt 发帖数: 17532 | 5
应该没有错.是tree太小
【在 A**o 的大作中提到】 : 你的计算时间的代码有误吧?
|
c*z 发帖数: 62 | 6 check your code.
You are comparing the same time stamp.
【在 m*r 的大作中提到】 : 计算的是Red black tree sort的时间 : 我用的是System.currentTimeMillis(); : 最大的 array size 是60000,结果出来的时候还是0,就无法去比较 : 有什么higher resolution timer么? : 本来要求的最大array size是20000,那样search sort的时间都是0。 : 现在增加了,sort的时间还是0 : 怎么解决这个问题呢?? : 多谢
|
c*z 发帖数: 62 | 7 public class test {
public static void main(String[] args){
for(int i=0; i<10; i++)
{
System.out.println(System.currentTimeMillis());
}
}
}
try this.
Java is not that efficient.
No language is that efficient.
【在 xt 的大作中提到】 : : 应该没有错.是tree太小
|
A**o 发帖数: 1550 | 8 这个不说明问题,因为时间都花在最慢的显示上了。
【在 c*z 的大作中提到】 : public class test { : public static void main(String[] args){ : for(int i=0; i<10; i++) : { : System.out.println(System.currentTimeMillis()); : } : } : } : try this. : Java is not that efficient.
|
c*z 发帖数: 62 | 9 Then how about this?
public class test {
public static void main(String[] args){
long t1;
long t2;
t1 = System.currentTimeMillis();
for(int i=0; i<60000; i++)
{
}
t2 = System.currentTimeMillis();
System.out.println(t2-t1);
}
}
it prints out 4 millliseconds on my server constantly.
【在 A**o 的大作中提到】 : 这个不说明问题,因为时间都花在最慢的显示上了。
|
c*z 发帖数: 62 | 10 Javadoc says:
Returns the current time in milliseconds. Note that while
the unit of time of the return value is a millisecond,
the granularity of the value depends on the underlying
operating system and may be larger. For example, many
operating systems measure time
in units of tens of milliseconds.
Your system might be in this case.
【 在 Mar (3月) 的大作中提到: 】 |
A**o 发帖数: 1550 | 11 这个就很有说服力了。
【在 c*z 的大作中提到】 : Then how about this? : public class test { : public static void main(String[] args){ : long t1; : long t2; : t1 = System.currentTimeMillis(); : for(int i=0; i<60000; i++) : { : } : t2 = System.currentTimeMillis();
|
l*****k 发帖数: 1059 | 12 做了个小程序比较 naonTime 和 currentTimeMillis
源程序如下:
static long emptyLoops(int Reps){
int i;
long nanoTime1 = System.nanoTime();
long milliTime1 = System.currentTimeMillis();
for (i=1; i
}
long nanoTime2 = System.nanoTime();
long milliTime2 = System.currentTimeMillis();
System.out.println("Empty loops for " + i + " times in " +
(nanoTime2 - nanoTime1) + " nS, or in " +
(milliTime2 - milliTime1) + " mS.");
return nanoTime2 - nanoTime1;
}
运行结果 (x86平台,Java 1.5.0, IBM |