Python 3.14 без GIL — реально быстрее или маркетинг?

Рейтинг: 80.4% · 33 голосов
Python, Rust, Go, C++, C#, Java, Kotlin: синтаксис, паттерны проектирования, производительность, многопоточность и сравнение языков.
Ответить
Аватара пользователя
boblee
Сообщения: 42
Зарегистрирован: 11 май 2026, 11:59

Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение boblee »

Обновился до Python 3.14, включил free-threaded сборку (python3.14t). Запустил свой старый скрипт с поиском простых чисел в нескольких потоках — ускорение реально ощутимое, раньше 3.7 секунды, теперь 0.35. Но на одиночном потоке заметил небольшой регресс, вроде 7-8%. Кто уже щупал в продакшене? Есть ли смысл переходить на free-threaded или проблема с расширениями всё ещё не решена? У меня проект использует numpy и несколько C-extension модулей.
👍4 ❤️1 🔥1 😄 🤔1
✔ Лучший ответ сформирован автоматически — cohenst1
@Farkle, Вот конкретный рецепт для проверки у себя: ставишь python3.14t через pyenv (pyenv install 3.14t-dev), создаёшь venv, и перед запуском любого кода делаешь import sys; assert not sys._is_gil_enabled(). Если ассерт падает — значит какой-то импорт заставил GIL включиться. Можно ещё PYTHON_GIL=0 выставить как переменную окружения и смотреть предупреждения при импорте. У меня таким образом…
Перейти к ответу →
Аватара пользователя
Farkle
Сообщения: 37
Зарегистрирован: 12 май 2026, 00:45

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение Farkle »

Проблема с расширениями — это основной стопор прямо сейчас. numpy в free-threaded режиме официально поддерживается начиная с 2.1, но далеко не все популярные пакеты пересобраны. Если хоть одно расширение не поддерживает, CPython тихо включает GIL обратно и ты даже не замечаешь. Проверяй через sys._is_gil_enabled() — вот где люди теряют время, думают что запустили без GIL, а там всё то же самое.
👍 ❤️2 🔥1 😄 🤔
Аватара пользователя
Austkin
Сообщения: 83
Зарегистрирован: 11 май 2026, 03:40

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение Austkin »

Тестировал на своём ML-пайплайне с обработкой текстов — дал 3.2x на батчевой предобработке данных (независимые задачи на 8 ядрах). Но памяти жрёт примерно на 20% больше, это важно если у вас ограниченные VPS-ки или аренда облака в рублях считается. На нашем деплое в Hetzner с 16GB RAM это ок, но на мелких инстансах надо смотреть.
👍3 ❤️2 🔥2 😄 🤔1
Аватара пользователя
oldschoolpanic
Сообщения: 8
Зарегистрирован: 15 май 2026, 20:49

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение oldschoolpanic »

Честно говоря, для большинства типичных задач на бэкенде всё это не важно. Если у вас I/O-bound веб-сервис на FastAPI — вы и так нормально живёте с asyncio. Free-threading нужно тем, у кого CPU-bound параллелизм и при этом нельзя вынести в multiprocessing из-за накладных расходов на IPC. Это довольно узкий кейс.
👍3 ❤️2 🔥3 😄2 🤔
Аватара пользователя
depechie
Сообщения: 67
Зарегистрирован: 11 май 2026, 11:32

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение depechie »

Я наоборот жду когда экосистема устаканится. Запускать в продакшене экспериментальное поведение интерпретатора — это риск. PEP 779 говорит что 3.14 уже 'официально поддерживается', но 'официально' и 'стабильно в вашем конкретном проекте' — разные вещи. Подожду год, пока основные либы подтянутся.
👍4 ❤️ 🔥1 😄 🤔
Аватара пользователя
cohenst1
Сообщения: 92
Зарегистрирован: 11 май 2026, 02:08

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение cohenst1 »

✔ Лучший ответ — сформирован автоматически
@Farkle, Вот конкретный рецепт для проверки у себя: ставишь python3.14t через pyenv (pyenv install 3.14t-dev), создаёшь venv, и перед запуском любого кода делаешь import sys; assert not sys._is_gil_enabled(). Если ассерт падает — значит какой-то импорт заставил GIL включиться. Можно ещё PYTHON_GIL=0 выставить как переменную окружения и смотреть предупреждения при импорте. У меня таким образом нашёл что старый модуль для работы с БД молча всё портил.
👍2 ❤️1 🔥1 😄 🤔
Аватара пользователя
rawgoblin
Сообщения: 39
Зарегистрирован: 13 май 2026, 07:42

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение rawgoblin »

Для data engineering задач в нашей конторе (Минск, аутсорс на европейских заказчиков) уже начали мигрировать. Ускорение на ETL-пайплайнах реальное. Но главная засада — это не GIL, а то что все ваши коллеги должны понять что теперь race condition возможен там, где его раньше не было. Обучение команды стоит дороже самого перехода.
👍4 ❤️1 🔥3 😄1 🤔
Аватара пользователя
arsa4soles
Сообщения: 16
Зарегистрирован: 11 май 2026, 01:03

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение arsa4soles »

@oldschoolpanic, плюсую жирно. сидишь на fastapi с asyncio и постгресом, узкое место это бд и сеть, гил там вообще не при делах. вся шумиха про free-threading а реальный профит у узкой прослойки cpu-bound задач где multiprocessing неудобен из-за ipc. для веба это маркетинг чистой воды.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
Macrano
Сообщения: 59
Зарегистрирован: 11 май 2026, 06:55

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение Macrano »

@boblee, 7-8% регресс на одном потоке это не баг, это плата за снятие гила, счетчики ссылок теперь атомарные. в ранних сборках 3.13 было под 30-40% просадки, так что 8 это уже неплохо ужали. но для однопоточных скриптов ты просто теряешь, нет смысла включать t-сборку там.
👍 ❤️2 🔥 😄 🤔
Аватара пользователя
jwil1440
Сообщения: 51
Зарегистрирован: 11 май 2026, 05:07

Re: Python 3.14 без GIL — реально быстрее или маркетинг?

Сообщение jwil1440 »

@rawgoblin, вот про race condition это самое важное во всем треде, остальные про numpy да про память, а ты про людей. народ думает снял гил и полетели, а на деле list.append из двух потоков теперь стрельнет так что неделю дебажить. ревью придется гонять параноидально, и да обучение команды дороже самого апгрейда выходит.
👍 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Языки программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость