Библиотека packaging, на которой основаны pip и большинство инструментов Python-экосистемы, стала работать в 2–5 раз быстрее. Оптимизация выполнена без перехода на C и без использования нестандартных решений — только профилирование и инженерные улучшения на чистом Python. В ходе работы совместно с мейнтейнерами pip были оптимизированы: • парсинг версий (PEP 440) • SpecifierSet • маркеры • Requirement • canonicalize_name Основные узкие места оказались не только в regex, но и в использовании namedtuple, повторном создании version, singledispatch вместо if, генераторов вместо map и избыточном применении regex. Оптимизация проводилась с помощью нового статистического профайлера Python 3.15 и бенчмарков на всех версиях пакетов, загруженных на PyPI. Результаты: • создание version — до 2 раз быстрее...
Библиотека packaging ускорена в 2–5 раз
СегодняСегодня
~1 мин