Интересное наблюдение. Парсинг в 80-100 потоков, Запись идет в 5 файлов на диске, в финале получаются по 1ГБ, больше не рискую. Файлы на выходе содержат по 20 млн. строк. При копировании файла на другой ж. диск, скорость копирования 3-4 мб/сек, пустых строк в файле около 1%.
Проект переместил на другой физ. диск (постарее), скорость перемещения с него 800-2000 Кб/сек. Пустых строк около 5% от общей массы.
Такое ощущение что запись идет по всему жесткому диску. Боюсь представить что будет при еще большем увеличении потоков.
Так что если у вас проект работает с такими объемами, нужно стремиться сделать цикл допустим в 100 раз и забивать значения в список без привязки к файлу. Затем когда цикл закончится, то объединить эл.списка, а уже затем - записать в файл. Так думаю будет полегче винту.