2015-02-01 5 views
-3

Я использую ядро ​​i5 с 64 ГБ SSD и 16 ГБ оперативной памяти. И я пишу файл размером около 4 МБ, и я получаю скорость записи 2-4 Кбит/с. Почему это так медленно?Зачем писать в файле так медленно?

try(PrintWriter out = new PrintWriter(new BufferedWriter(
     new FileWriter("D:\\"+filename+"length.txt", true)))) { 
    out.println(lengthValues); 
}catch (IOException e) { 
    System.err.println(e); 
} 
+0

В основном, когда вы пишете файл, JVM заботится о синхронизации операции записи с блокировкой, чтобы никто другой не мог записать ее одновременно. Такие операции мониторинга делают работу с записью несколько медленнее, чем обычно. – Jango

+0

Ваша программа многократно открывает и закрывает файл? Открытие файла происходит медленно. – immibis

ответ

0

Код, который вы нам указали, записывает только одну строку.

Если вы вызываете это повторно, то наиболее вероятной проблемой является то, что вы неоднократно открываете и закрываете один и тот же файл много раз. Вы получите гораздо лучшую производительность, если вы откроете файл один раз и напишите много строк к нему. Цена за передачу данных: 2-4Kb в секунду. Возможно, это вызвано особенностями SSD и/или драйверов SSD для Windows.

Смежные вопросы