avatar
java里的时间计算# Java - 爪哇娇娃
m*r
1
计算的是Red black tree sort的时间
我用的是System.currentTimeMillis();
最大的 array size 是60000,结果出来的时候还是0,就无法去比较
有什么higher resolution timer么?
本来要求的最大array size是20000,那样search sort的时间都是0。
现在增加了,sort的时间还是0
怎么解决这个问题呢??
多谢
avatar
f*h
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
: 怎么解决这个问题呢??
: 多谢

avatar
m*t
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
: 怎么解决这个问题呢??
: 多谢

avatar
A*o
4
你的计算时间的代码有误吧?

【在 m*r 的大作中提到】
: 计算的是Red black tree sort的时间
: 我用的是System.currentTimeMillis();
: 最大的 array size 是60000,结果出来的时候还是0,就无法去比较
: 有什么higher resolution timer么?
: 本来要求的最大array size是20000,那样search sort的时间都是0。
: 现在增加了,sort的时间还是0
: 怎么解决这个问题呢??
: 多谢

avatar
xt
5

应该没有错.是tree太小

【在 A**o 的大作中提到】
: 你的计算时间的代码有误吧?
avatar
c*z
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
: 怎么解决这个问题呢??
: 多谢

avatar
c*z
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太小

avatar
A*o
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.

avatar
c*z
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 的大作中提到】
: 这个不说明问题,因为时间都花在最慢的显示上了。
avatar
c*z
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月) 的大作中提到: 】
avatar
A*o
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();

avatar
l*k
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
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。