TGViewer
CPython notes CPython notes @cpython_notes · 2.39K subscribers
Post #49 11.8K
Был смержен тред-локал байткод - https://github.com/python/cpython/pull/123926

Зачем это нужно и как это связано с nogil aka free-threaded?

Напомню, что в версии 3.11 был добавлен так называемый <адаптивный> интерпретатор, который умеет в специализацию.
Типичная операция x + y в обычном случае превращается в BINARY_OP опкод, который делает x.__add__(y), что несомненно не очень-то и дешево, так как надо производить лукап __add__ и прочие связанные с этим операции.
Адаптивный интерпретатор "подстраивается" под ситуации когда у вас достаточно много случаев в коде когда в операции x + y оба операнда являются интами, и тогда можно сэкономить на лукапе и дергать специализированную сишную функцию для сложения интов, которая не производит никакого лукапа атрибутов, и именно на этом мы выигрываем по производительности.

Так вот, в случае с nogil сборкой адаптивный интерпретатор не является потокобезопасным, что делало nogil сборку действительно медленнее(потому что специализация была выключена в nogil сборке). Pull request отмеченный выше делает адаптивный интерпретатор потокобезопасным и вместе с этим у codeobject появляется атрибут co_tlbc :)
  • 🔥 22
  • 👍 5
  • ❤ 2
More from @cpython_notes
  1. Sep 8, 2026https://discuss.python.org/t/docstrings-for-type-aliases/108901 По моему мнению адекватная…
  2. Sep 7, 2026https://peps.python.org/pep-0828/ Был принят. Теперь можно будет делать так async def agen…
  3. Aug 23, 2026https://blog.python.org/2026/08/the-python-documentation-is-now-available-in-russian/ Внез…
  4. Aug 20, 2026https://github.com/python/peps/pull/5101 Я бы сказал пушка. За ссылку спасибо @miryanovsn
  5. Aug 14, 2026Никита Соболев aka автор @opensource_findings собрал папку с русскоязычными сообществами п…
  6. Aug 5, 2026https://peps.python.org/pep-0797/ был отклонен руководящим советом.
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 →