Я работаю с огромными структурированными наборами данных (более 10 миллионов строк), где скорость обработки является основным узким местом. Используя стандартный pandas.read_csv (даже с движком C), я достигаю потолка производительности примерно в 100-150 МБ/с. На стандартной машине это означает, что синтаксический анализ файла размером 10 М занимает почти 8 секунд.
Узким местом является «налог на абстракцию» — накладные расходы интерпретатора Python, множественные копии памяти и глобальная блокировка интерпретатора (GIL) на этапе числового анализа.
Существует ли проверенная схема достижения почти аппаратных ограничений (2 ГБ/с+) для приема CSV в Python? Я изучал mmap, но изо всех сил пытаюсь найти простой способ интегрировать анализ отображений в память с расширениями C, чтобы полностью обойти GIL.