我正在尝试执行此循环,但是当我编译它运行正常时,我只得到输出"总执行时间:0"
package Time;
public class Time {
public Time() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
final long startTime = System.currentTimeMillis();
int n = 0;
int sum = 0;
for (int i = 0; i <= n; i++) {
for (int j = 1; j <= 1000; j++)
sum = sum + j;
}
final long endTime = System.currentTimeMillis();
System.out.println("Total execution time: " + (endTime - startTime) );
}
}
答案 0 :(得分:1)
由于执行速度太快,您可以使用nanoTime
来代替:
final long startTime = System.nanoTime();
final long endTime = System.nanoTime();
System.out.println("Total execution time: " + (endTime - startTime));
答案 1 :(得分:1)
只需增加循环中的金额。
或做一个更重的数学方程式。
此外,使用System.nanoTime()进行纳米计时。
public static void main(String[] args)
{
// 1 second = 0.000000001 nanoseconds
long startTime = System.nanoTime();
int n = 0;
int sum = 0;
for (int i = 0; i <= n; i++)
{
for (int j = 1; j <= 1_000_000_000; j++)
sum = sum + j;
}
System.out.printf("Total execution time: %07.3f secs",
(System.nanoTime() - startTime) * 1e-9);
}
答案 2 :(得分:0)
首先n
为零,使外for
循环实际无用(只输入一次)。第二:
for (int j = 1; j <= 1000; j++)
从1000000
中制作1000
。也许你会得到一些结果。对于合理的时间测量,当前的执行速度太快了。