我无法让Java时钟测量从一个简单程序的开始到结束所经过的时间(以毫秒为单位).
我复制了下面的程序.您将看到我使用了实用程序Calendar,然后打印循环之前和之后的时间.无论循环花费多长时间,循环前后打印命令显示的时间都不会改变.
你能建议一个解决方案吗?
我用DrJava.
import java.util.Calendar;
class time
{
public static void main(String[] args)
{
int sum=0;
int i=0;
int j=0;
int n=300;
Calendar cal = Calendar.getInstance();
System.out.println("Current milliseconds since 13 Oct, 2008 are :" + cal.getTimeInMillis());
for (i=0;i < n; i++)
{
sum++;
System.out.println("ROW " + i);
}
System.out.println(" Current milliseconds since 13 Oct, 2008 are :" + cal.getTimeInMillis());
}
}
Run Code Online (Sandbox Code Playgroud)
Poo*_*ool 12
使用
System.nanoTime();
Run Code Online (Sandbox Code Playgroud)
测量经过的时间.
这是从Java 1.5开始可用的,单调的(如果可能,方法细节).
如果您想要精确测量经过的时间,请使用System.nanoTime().
从Java文档:
Run Code Online (Sandbox Code Playgroud)public static long nanoTime()返回最精确的可用系统计时器的当前值,以纳秒为单位.
此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关.返回的值表示纳秒,因为某些固定但是任意时间(可能在将来,因此值可能为负).该方法提供纳秒精度,但不一定是纳秒精度.不保证值的变化频率.由于数值溢出,跨越大于约292年(263纳秒)的连续调用的差异将无法准确计算经过的时间.
例如,要测量某些代码执行所需的时间:
Run Code Online (Sandbox Code Playgroud)long startTime = System.nanoTime(); // ... the code being measured ... long estimatedTime = System.nanoTime() - startTime;
| 归档时间: |
|
| 查看次数: |
3133 次 |
| 最近记录: |