当然你不会有一个控制台加载的GUI,除非你运行上面提到的命令,所以如果你有很多的打印语句,它是否仍然影响你的程序的速度,他们仍然打印?
任何性能问题的最佳答案是测试它。下面是一个简单的示例程序:
import java.io.*;
class Test {
public static void main(String[] args) throws Exception {
// Untimed, for the sake of JIT compilation
for (int i = 0; i < 100000; i++) {
System.out.println("Foo");
}
// Now let's time it.
long start = System.nanoTime();
for (int i = 0; i < 100000; i++) {
System.out.println("Foo");
}
long end = System.nanoTime();
String outputPath = "c:\\users\\jon\\test\\results.txt";
try (FileWriter writer = new FileWriter(outputPath)) {
writer.write((end - start) + " nanoseconds");
}
}
}
从控制台上运行这一点,但它隐藏,我的笔记本电脑,我得到的5604097078纳秒的结果。
从Windows资源管理器运行它,所以没有输出,我得到了3339245234纳秒的结果。(显然我已经运行了几次 - 这些只是典型的结果。)因此,尽管写入一个实际上没有做任何事情的控制台效率会更高,但它远没有免费。在应用程序中是否存在问题是另一回事。
并且不,输出真的不是写在任何地方,据我所知。如果您使用这种方式进行日志记录,最好使用专用的日志记录软件包,该软件包允许您将其禁用以实现更高效的无日志记录,并且还允许您登录到特定文件或任何位置想。
是什么让nanoTime比Milli更好? – Loligans
@Loligans检查这个http://stackoverflow.com/questions/351565/system-currenttimemillis-vs-system-nanotime – SpringLearner