TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5070 567

Forwarded from Типичный программист

Python обработал 7,6 ГБ JSON за 0,12 секунды

Здесь интересно, куда уходило время. Дэниел Лемир, исследователь производительности, взял 2,2 млн событий GitHub, чтобы посчитать открытые PR по языкам. А Python при обычном разборе создавал кучу словарей, списков и строк, которые для этой задачи вообще не нужны.

В эксперименте с fastsimdjson и lazy=True Python-объекты создаются только для запрошенных полей. Сборка Python без GIL позволяет обрабатывать события в 64 потоках внутри одного процесса. У каждого потока свои счётчики, в конце их складывают. Зачем собирать весь объект, если нужна только малая часть?

У Лемира получилось около 0,12 секунды. Стенд: два Xeon Gold 6548N, 64 ядра, free-threaded Python 3.14.6 и fastsimdjson 0.6.0. Все 7,6 ГБ уже распакованы в RAM, чтение с диска и распаковка в замер не входят. Это лучший из семи прогонов, одинаковую статистику сверили всеми методами.
More from @zen_of_python
  1. Oct 16, 2026Как сделать бэкап работающей SQLite через Python Просто скопировать файл активной базы рис…
  2. Oct 16, 2026Что проверить перед переходом на SQLAlchemy 2.1 Обновление зависимости может поменять драй…
  3. Oct 15, 2026Почему subprocess с PIPE может зависнуть Дочерний процесс пишет в stdout, родитель вызывае…
  4. Oct 15, 2026Как запустить тесты самого Django через uv Хотите исправить баг в Django? Сначала понадоби…
  5. Oct 15, 2026Почему тест проходит отдельно и падает в наборе Один тест добавляет объект в общий список,…
  6. Oct 14, 2026Почему Rust внутри CPython предлагают начать с zlib На Python Language Summit обсудили пос…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →