当定时方法(确定效率)时,用户输入和输出应包括在时间内吗?

时间:2014-05-08 18:42:36

标签: java language-agnostic benchmarking timing

如果我想测试方法返回的速度,我应该包含它的输出吗?例如

public static void fizzBuzz2(int n)
    {
        for(int i = 1; i <= n; i++)
        {
            if(i % 3 == 0  && i % 5 == 0)
                System.out.println("FizzBuzz");
            else if(i % 3 == 0)
                System.out.println("Fizz");
            else if(i % 5 == 0)
                System.out.println("Buzz");
            else
                System.out.println(i);
        }
    }

我要修改,以便它不会打印到控制台,而是写入文件。写入文件的时间是否应包括在计时中?幸运的是,参数被传入,但在采用userinput的情况下,基准测试是如何进行的?

我在考虑评论System.out.println语句,但我不确定优化器是否会删除整个程序:/

1 个答案:

答案 0 :(得分:0)

将处理时间存储在变量中,然后将其保存到文件中,然后您不必担心编写它所需的额外时间。  在这里调用一些评论时,我不确定你要查找的精度程度,但是在进程开始之前简单的long start = System.currentTimeMillis()并在完成时从第二个时间戳中减去该精度将给出你是一个好主意。捕获结束时间后,您可以执行文件保存和输出