Лучшее, на что вы можете надеяться - это переносить большие блоки текста в память (или «карту памяти» в файл) и обрабатывать текст в памяти.
Суть эффективности в том, что текстовые строки являются записями переменной длины. Обычно текст читается, пока не будет найден конец строки терминатора. В общем, это означает чтение символа и проверку на eol . Многие платформы и библиотеки пытаются сделать это более эффективным путем чтения блоков данных и поиска данных по eol .
Ваш формат CSV еще больше усложняет проблему. В CSV-файле поля являются записями переменной длины. Опять же, поиск терминального символа, такого как запятая, табуляция или вертикальная черта.
Если вы хотите повысить производительность, вам придется изменить макет данных на фиксированную длину поля и фиксированную длину записи. Поля поля при необходимости. Приложения могут удалить дополнительные отступы. Записи с фиксированной длиной очень эффективны для чтения. Просто прочитайте N количество байтов. Нет сканирования, просто дамп в буфер где-то.
Поля фиксированной длины допускают произвольный доступ к записи (или текстовой строке). Индекс в поле является постоянным и может быть легко вычислен. Поиск не требуется.
Таким образом, записи и поля переменной длины по своей природе не являются самой эффективной структурой данных. Время тратится на поиск терминальных символов. Записи фиксированной длины и поля фиксированной длины более эффективны, поскольку не требуют поиска.
Если ваше приложение интенсивно использует данные, возможно, реструктуризация данных сделает программу более эффективной.