Быстрый метод заключается в использовании двойной буферизации и нескольких потоков (как минимум, двух).
Один поток отвечает за запись данных на жесткий диск. Эта задача проверяет буфер и, если он не пустой (или, возможно, другое правило), начинает запись на жесткий диск.
Другой поток записывает форматированный текст в буфер.
Одна проблема производительности с жесткими дисками - это количество времени, необходимое для того, чтобы набрать скорость и установить головку в правильное положение. Чтобы этого не произошло, цель состоит в том, чтобы постоянно записывать на жесткий диск, чтобы он не останавливался. Это сложно и может включать в себя вещи, выходящие за рамки вашей программы (например, другие программы, запущенные одновременно). Чем больше порция данных, записанных на жесткий диск, тем лучше.
Еще одна проблема - найти пустые слоты на жестком диске для хранения данных. Фрагментированный жесткий диск будет медленнее, чем отформатированный или дефрагментированный диск.
Если переносимость не является проблемой, вы можете проверить свою ОС на наличие некоторых API, которые выполняют блочную запись на жесткий диск. Или вы можете перейти вниз и использовать API, который пишет непосредственно на диск.
Вы также можете захотеть, чтобы ваша программа изменила свой приоритет, чтобы она стала одной из самых важных выполняемых задач.