У Вас изначально неправильно и нерационально организован парсинг данных.Igor_G писал(а):Это что значит мы умудрились 4GB забить? Круто. Только как ума не приложу. A что делать тем более.
Помогите понять!
Я бы делал:
1. Построчное считывание данных, а не весь файл целиком (данный файл загрузить полностью возможно, а вот если размер будет в несколько раз больше, то могут возникнуть проблемы).
2. После считывания строки, преобразование ее в массив данных, а не строк.
У Вас основная нагрузка идет именно при преобразовании строки в массив строк. А зачем это делать ???

А реально у Вас столбцов шесть:
1. Message number
2. Time offset (in Milliseconds)
3. Bus
4. Type
5. Symbol/ID
6. Multiplexer/Variable/Data
Даже если Вы каждую строку разобьете на массив из шести строковых элементов, это уже будет значительный выигрыш. А если вы каждую строку опишите кластером и сразу будите делать преобразование типов (например Message number -> U32, Time offset -> DBL, Symbol/ID -> Enum (Список) и т.д. Строковым останется только последний столбец с данными, но лучше его тоже сразу разбирать), то выигрыш должен быть еще больше.
На мой взгляд нужно заморочится с регулярными выражениями и для парсинга строки использовать Match Regular Expression. Файл читать построчно.