Производительность Java BufferedWriter - PullRequest
1 голос
/ 17 июля 2011

Мне нужно создать большие тестовые файлы - около 3 ГБ.Поэтому я пытаюсь написать для начала только строку «1» - чтобы проверить производительность и правильность.

FileWriter fstream = new FileWriter("c:/out.txt");
BufferedWriter out = new BufferedWriter(fstream,10000000);
for (int i = 0; i < 1000000000; i++) {
  //out.write(Integer.toString(1));
  out.write("1");
  out.newLine();
}
out.close();

В будущих версиях мне нужно написать случайные целые числа.Теперь это занимает на моем компьютере 3 мин 26 с.Изменение размера буфера, похоже, не помогает.Можно ли ускорить процесс написания?Спасибо.

Ответы [ 2 ]

4 голосов
/ 17 июля 2011

Хорошо, 3 ГБ - это 3072 МБ - и если у вас скорость записи 25 МБ / с - это займет чуть больше 2 минут.Попробуйте на другом компьютере и сравните результаты - возможно, это просто ваш жесткий диск, который не быстро

1 голос
/ 17 июля 2011

Возможно, вы захотите взглянуть на массив raid, чтобы ускорить ваши записи. Запись большого количества данных - медленный процесс. Также вы можете посмотреть на SSD или на некоторые методы памяти (ram drive).

...