@WTFAYD

Почему BufferedWriter записывает медленнее чем FileWriter?

Мне нужно измерить производительность буферизованной и небуферизованной записи в файл и сравнить их. Я написал этот код:
String text = "ABCDEF";
    long startTime, stopTime;
    
    BufferedWriter w = new BufferedWriter(new FileWriter("file1.txt"));
    startTime = System.nanoTime();
    w.write(text);
    w.close();
    stopTime = System.nanoTime();
    print(stopTime - startTime); // 1
    
    FileWriter w1 = new FileWriter("file1.txt");
    startTime = System.nanoTime();
    w1.write(text);
    w1.close();
    stopTime = System.nanoTime();
    print(stopTime - startTime); // 2

В книге написано, что буферизованные операции быстрее, чем небуферизованные, но, по факту получается, что первое число (помечено комментарием как 1) получается больше, чем второе число. Если я поменяю их местами (сначала измерю небуферизованную запись), все равно остается такая же ситуация - первое число больше чем второе. Подскажите, что я делаю неправильно?
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 2
Подскажите, что я делаю неправильно?

Пишете бенчмарки.
Ответ написан
Комментировать
Возможно нужно сначала "разогреть" jvm. Прогоните свой код несколько раз в цикле, посмотрите, как меняются замеры в каждом цикле, попробуйте отбросить первые n-циклов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы