В конечном счете, ограничением здесь является только количество свободного места в бесплатном хранилище вашей программы, которое фактически является количеством свободной памяти в вашей системе (RAM, swap, что угодно).
Производительность строкового потока будет несколько ухудшаться по мере роста его «содержимого», поскольку изменение размера буфера требует копирования его содержимого, и это происходит медленнее, когда имеется больше содержимого. Вы также можете рискнуть фрагментировать пул памяти вашей системы. Из вашего описания трудно понять, является ли это фактором (количество строк здесь не важно; число байтов равно).
В зависимости от того, насколько быстро заполняется журнал, я мог бы рассмотреть возможность более частой очистки файла, чтобы:
- эта операция относительно быстра сама по себе, каждый раз, когда вы ее делаете, и
- вы используете собственные очень умные алгоритмы буферизации операционной системы, а
- вы используете собственные очень умные алгоритмы буферизации жесткого диска
поскольку нет смысла сознательно избегать всех этих зрелых технологий.
По сути, промывка партиями имеет смысл, поэтому ваш общий дизайн звучит нормально.