7.09.2025 состоялся релизPithon 3.14!
На фоне хайпа про NoGIL всё позабыли про другие фичи. Особенно про Multiple Interpreters, который обещает изоляцию процессов но с эффективностью потоков! На сколько действительно это будет эффективно мы узнаем позже, потому что сейчас это лишь первый релиз с ограничениями и недоработками.
Но что там про NoGIL? Теперь этот режим не экспериментальный, а официально поддерживаемый, но опциональный.
Чтобы запустить без GIL нужна специальная сборка. И перед стартом нужно объявить переменную PYTHON_GIL=0
Для вас я собрал готовый репозиторий где достаточно запустить скрпит, который всё сделает:
▫️ соберет релизный Python 3.14 в новый Docker-образ
▫️ запустит тесты в контейнере (GIL, NoGIL, MultiInterpreter)
▫️ распечатает результаты
Тест очень простой, усложняйте сами)
Вот какие результаты у меня:
=== Running ThreadPoolExecutor GIL ON
TOTAL TIME: 45.48 seconds
=== Running ThreadPoolExecutor GIL OFF
TOTAL TIME: 6.14 seconds
=== Running basic Thread GIL ON
TOTAL TIME: 45.54 seconds
=== Running basic Thread GIL OFF
TOTAL TIME: 4.74 seconds
=== Running with Multi Interpreter
TOTAL TIME: 18.30 seconds
Если сравнивать GIL и NoGIL, то на мои 32 ядра прирост х7-x10 (почему не х32? 🤷). При этом нам обещают что скорости будут расти с новыми релизами.
Режим без GIL похож (визуально) на async, тоже параллельно, тоже не по порядку. Но это не IO! и от того некоторый диссонанс в голове 😵💫, нас учили не так!
Интересно, что чистый Thread работает быстрей чем ThreadPoolExecutor без GIL.
Ну и где-то плачет один адепт мульти-интерпретаторов😭 Теперь нужно искать где они могут пригодиться с такой-то скоростью. Скорее всего своя область применения найдется.
Отдельно я затестил память и вот что вышло на 32 потока:
ThreadPoolExecutor GIL ON
305.228 MB
ThreadPoolExecutor GIL OFF
500.176 MB
basic Thread GIL ON
90.668 MB
basic Thread GIL OFF
472.444 MB
with Multi Interpreter
1267.788 MB
Пока не знаю как к этому относиться)
В целом - радует направление развития!
#release
ㅤ
▎我们每天的胜利
...
然后你就不再想要它了。他停止了疼痛的可能性,这绝不会逍遥法外。只是停下来,没有发现其他任何东西。我没有说我有多少,但我仍然有强烈的寻找和强烈的希望。不是你低沉甜美的声音。而且我不哭,如果必须的话,有一天我会哭的,Lori。我正处于一场斗争中,比你更接近所谓的人类胜利,但这就是胜利。我已经可以用我的身体和灵魂拥有你了。我会等待,即使是多年,你也有身体和灵魂去爱。我们还年轻,我们可以浪费一些时间而不浪费我们的一生。但是看看你周围的每个人,看看我们为自己做了什么,并考虑了我们每天的胜利。我们没有爱高于一切。我们没有接受不被理解的东西,因为我们不想被愚弄。我们一直在堆积东西和安全,因为没有彼此。我们没有尚未编目的快乐。我们建造了大教堂,我们一直呆在外面,因为我们自己建造的大教堂,我们担心它们是陷阱。我们没有放弃自己,因为那将是长寿的开始,我们害怕它。我们避免在第一个出于爱而说:你害怕的人面前跪下。我们组织了协会和微笑俱乐部,提供或不提供苏打水。我们试图拯救自己,但没有使用拯救这个词,这样我们就不会为自己的无辜感到羞耻。我们没有使用爱这个词,因此我们不必认识它的仇恨、爱、嫉妒和许多其他矛盾的质地。我们对死亡保密,以使我们的生命成为可能。我们中的许多人创作艺术是因为我们不知道其他事物是什么样的。我们用虚假的爱掩饰了我们的冷漠,知道我们的冷漠是伪装的痛苦。我们用小恐惧掩盖了大恐惧,这就是为什么我们从不谈论真正重要的事情。谈论真正重要的事情被认为是失态。我们没有敬拜,是因为我们有理智的小心思及时记住假神。我们没有纯洁和天真,所以我们不会嘲笑自己,所以在一天结束时我们可以说“至少我不是傻瓜”,所以我们不会在关闭之前感到困惑光。我们在公共场合微笑,而不是我们独自一人时不会微笑。我们称自己是坦率的弱点。我们最害怕对方。对于这一切,我们认为我们每天的胜利。但我逃脱了它,Lori,带着瘟疫的凶猛逃脱了,Lori,我会等到你也准备好。
Clarice Lispector
(fragmento de Uma aprendizagem ou o livro dos prazeres, Rocco, 1998)
Google 译
#摘#克拉丽丝·李斯佩克朵