Консоль
Как некоторые тесты: печать в System.out результат:
Printing line : #0
.
.
.
Printing line : #14997
Printing line : #14998
Printing line : #14999
System.out took: 238ms
- Тест № 1:
238ms
- Тест #2:
235ms
- Тест № 3:
251ms
- Тест № 4:
210ms
- Тест № 5:
172ms
- Тест № 6:
268ms
новый поток
И использование нового Stream
результат:
Printing line : #0
.
.
.
Printing line : #14996
Printing line : #14997
Printing line : #14998
Printing line : #14999
System.out with new stream took: 220ms
- Тест № 1:
220ms
- Тест № 2:
219ms
- Тест № 3:
222ms
- Тест № 4:
220ms
- Тест# 5:
223ms
- Тест № 6:
250ms
Код
try {
System.setOut(new PrintStream(new FileOutputStream("C:\\TMP\\logs.log")));
long startTime = Calendar.getInstance().getTimeInMillis();
for (int a=0;a<15000;a++) {
System.out.println("Printing line : #"+a);
}
long elapsedTime = (Calendar.getInstance().getTimeInMillis() - startTime);
System.out.println("System.out took: " + elapsedTime + "ms");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Как видите, разница в скорости неи даже «сделка». Что я не проверял, так это производительность (дисковый ввод-вывод, память и процессор) с использованием этих методов.
Но если вы спросите меня о том, что я думаю, я скажу, чторезультат будет что-то вроде теста скорости, который мы только что выполнили ... Для моих журналов в любом приложении, я использую код, я использую Log4J (http://logging.apache.org/log4j/1.2/index.html), чтобы регистрировать все, что я хочу, и вы можетеустановить уровень входаВы хотите (отладка, информация, ошибка и т. д.)