Синтаксический анализ файла CSV связан с вводом / выводом, определяемым скоростью считывания данных с диска.Самое быстрое, что может когда-либо происходить, составляет от 50 до 60 МБ в секунду для жесткого диска на уровне потребителя.Похоже, что LumenWorks близок к этому пределу.
Такая пропускная способность будет достигнута только на чистом чистом нефрагментированном диске с файлом one .Так что головка считывателя дисков просто качает данные без необходимости много двигаться, просто след за ходом.Перемещение головы - это медленная часть, обычно около 16 миллисекунд.
При чтении 3000 файлов много движения головы.Просто открытие файла занимает около 50 миллисекунд.По крайней мере, сделайте сопоставимый тест, чтобы найти узкое место.Используйте хороший текстовый редактор и скопируйте / вставьте, чтобы сделать один гигантский файл.Сначала запустите дефрагментатор диска, Defraggler - приличный бесплатный.
Что касается улучшения кода, следите за строками.Они могут генерировать много мусора и иметь плохую локальность кэша процессора.Потоки не могут сделать код ввода / вывода быстрее.Единственным возможным улучшением является один поток, который читает файл, другой поток, который выполняет преобразование, так что чтение и преобразование перекрываются.Чтение нескольких потоков бессмысленно, они просто по очереди ждут диск.
И следят за кэшем файловой системы.Во второй раз, когда вы запустите тест для того же файла, вы получите данные из памяти, а не с диска.Это быстро, но не скажу вам, как оно будет работать в производстве.