我无法获得Java时钟来测量从简单程序的开始到结束所经过的时间(以毫秒为单位)。>>
我已在下面复制了程序。您会看到我使用了日历实用程序,然后在循环之前和之后打印了时间。无论循环花费多长时间,循环之前和之后print命令显示的时间都不会改变。
您可以提出解决方案吗?
我使用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());
}
}
我无法获得Java时钟来测量从简单程序的开始到结束所经过的时间(以毫秒为单位)。我已经在下面复制了程序。您将看到我使用了实用程序...
使用
如果要精确测量经过时间,请使用System.nanoTime()
。
来自文档:
而且,即使以毫秒为单位,一个简单循环的300次迭代也不大可能在任何时间注册。您可能要尝试30万(300000)或更多的迭代。
getTimeInMillis()
关于您的选择为何无法达到预期效果的明确说明。
正如Greg所建议的,您应该进行大量的迭代。他的论点是正确的-从统计学上讲,拥有更大的样本将产生更准确的结果(这将消除由于不可控事件(例如gc,环境等)导致的随机偏差。]
从Java 8开始,您可以尝试以下操作: