惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
爱范儿
爱范儿
P
Proofpoint News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
Latest news
Latest news
The Hacker News
The Hacker News
Cyberwarzone
Cyberwarzone
博客园 - 【当耐特】
Project Zero
Project Zero
小众软件
小众软件
T
Tailwind CSS Blog
量子位
博客园 - 聂微东
I
Intezer
美团技术团队
S
SegmentFault 最新的问题
T
Tor Project blog
Spread Privacy
Spread Privacy
V
Vulnerabilities – Threatpost
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Jina AI
Jina AI
罗磊的独立博客
B
Blog RSS Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Troy Hunt's Blog
有赞技术团队
有赞技术团队
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
C
Cisco Blogs
L
LINUX DO - 热门话题
Last Week in AI
Last Week in AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
L
LINUX DO - 最新话题
Know Your Adversary
Know Your Adversary
GbyAI
GbyAI
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
Lohrmann on Cybersecurity
The Register - Security
The Register - Security
L
LangChain Blog
博客园 - 叶小钗
T
Tenable Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Nuitka 4.0: как я разогнал свой Python-скрипт на 335% и почему JIT-будущее уже на пороге
kardanShurup · 2026-04-24 · via Все публикации подряд на Хабре

Представьте себе: вы запускаете свой старый добрый Python-скрипт, он привычно задумывается на пару секунд, а потом начинает работать. А теперь представьте, что тот же самый скрипт без единого изменения в коде — просто после прогона через одну утилиту — стартует почти мгновенно и работает втрое быстрее. Никакой магии, просто вышел Nuitka 4.0.

22 апреля 2026 года проект, который когда-то начинался как нишевый компилятор, дорос до мажорной версии 4.0. И это не просто «пофиксили баги, добавили пару флагов» — это реально меняет правила игры для тех, кто пишет на Python и хочет, чтобы код летал, а не ползал. По данным официальных тестов, скомпилированные скрипты показывают повышение производительности на 335% в pystone-бенчмарке по сравнению с CPython. Можете представить, что ваш веб-парсер или ML-пайплайн ускоряется втрое без переписывания на Rust.

Если совсем просто: PyInstaller просто пакует ваш скрипт вместе с интерпретатором в один файл — по сути, это архив с «батарейками». А Nuitka переписывает весь Python-код на чистый C и компилирует его в настоящий исполняемый файл. Никакой интерпретации на лету — только скомпилированный бинарник, который в теории может обогнать даже PyPy. И теперь, с версией 4.0, эта теория стала куда ближе к практике. «Раньше я думал, что ускорение от Nuitka довольно скромное... но с версией 4.0 вижу реальный прогресс», — примерно так звучат комментарии на Hacker News, и я с ними согласен.

Что нового в версии 4.0: разбор по косточкам

Совместимость с будущим: Python 3.14 на горизонте

Разработчики Nuitka смотрят в будущее пристальнее, чем я в холодильник ночью. В версии 4.0 добавлена поддержка отложенной обработки аннотаций (PEP 649) и нового синтаксиса типов для обобщённых классов (PEP 695), которые станут стандартом в Python 3.14. Для нас, простых смертных, это означает, что код, который вы пишете сегодня с прицелом на завтрашние фичи, можно будет компилировать уже сейчас. Не нужно ждать, пока весь мир переедет на 3.14 — просто берёте Nuitka 4.0 и компилируете. Красота.

Zig и Clang: свежая кровь в компиляторных бэкендах

Раньше Nuitka использовал в основном GCC или MinGW для компиляции сгенерированного C-кода. Теперь у нас есть выбор, да ещё какой.

Во-первых, экспериментальная поддержка компилятора Zig (zig cc) в качестве бэкенда. Zig — это современный язык системного программирования, который компилирует быстрее GCC, генерирует отличный код и, что особенно приятно, поддерживает кросс-компиляцию из коробки. Хотите собрать бинарник для Linux, сидя на macOS? Zig способен на это. Просто добавьте флаг --zig при запуске Nuitka — и вперёд.

Во-вторых, добавлена поддержка Link-Time Optimization (LTO) для компилятора Clang, включая режим Thin LTO. Что это за зверь такой? LTO позволяет компилятору оптимизировать код не в пределах одного файла, а на этапе сборки, когда видны все объектные файлы сразу. Thin LTO — это облегчённая версия, которая даёт неплохой прирост производительности без превращения сборки в процесс, во время которого можно успеть приготовить борщ. Включается всё парой флагов:

nuitka --standalone --clang --lto=thin my_script.py

Профит по скорости есть, а компиляция не затягивается на полдня — компромисс что надо.

Новые фичи для профилирования и дебага

Тем, кто любит копаться в недрах сборки и отлаживать сложные проекты, Nuitka 4.0 приготовила несколько приятных инструментов:

  • Флаг --project позволяет собирать проект с использованием настроек из файла pyproject.toml. Теперь конфигурация сборки живёт там же, где и все остальные настройки проекта. Python-way, никаких дополнительных скриптов.

  • --devel-profile-compilation — профилирование самого этапа компиляции. Когда Nuitka начинает подтормаживать при сборке большого проекта, этот флаг поможет понять, в каком месте он залипает, и принять меры.

  • --debug-self-forking — палочка-выручалочка для отладки форк-бомб. Форк-бомбы — это когда программа начинает клонировать саму себя в бесконечном цикле, и ваш компьютер уходит в астрал. С этим флагом можно отследить такое поведение и вовремя принять меры.

  • --qt-debug-plugins — диагностика загрузки Qt-плагинов. Если у вас GUI на PyQt или PySide, и после компиляции плагины не подгружаются — этот флаг покажет, что именно идёт не так.

Декоратор @nuitka_ignore — выборочный контроль

Иногда бывает нужно, чтобы какая-то функция осталась интерпретируемой, а не компилировалась. Например, она генерирует код на лету или вы активно её отлаживаете. В Nuitka 4.0 появился декоратор @nuitka_ignore, который говорит компилятору: «Эту функцию не трогай».

@nuitka_ignore
def my_debug_function():
    # Эта функция останется интерпретируемой
    ...

Удобно, когда нужно точечно исключить проблемный участок, не пересобирая весь проект.

Расширенная поддержка сторонних пакетов

Раньше компиляция проектов с популярными библиотеками вроде pandas, jedi или sentry_sdk могла закончиться фейерверком из ошибок. Теперь Nuitka 4.0 официально поддерживает актуальные версии oracledb, win32ctypes, dask, puremagic, sentry_sdk, jedi, parso и многих других. Это значит, что вы можете взять типичный data science проект с pandas и dask, скомпилировать его в один бинарник и спокойно отдать заказчику. Без танцев с бубном вокруг недостающих зависимостей.

Производительность: 335% — это красивая цифра, но что она значит на самом деле?

Давайте разберёмся честно. Pystone — это синтетический бенчмарк, аналог Dhrystone для C. Он не отражает реальную производительность большинства приложений, а скорее измеряет скорость работы интерпретатора в идеальных условиях. Nuitka демонстрирует 3.35-кратное ускорение в pystone, но в реальных задачах картина другая.

Pystone простыми словами

pystone — это такой синтетический тест, искусственная трасса без ям и светофоров. Он замеряет «чистую» скорость выполнения питоновских операций: создание объектов, вызовы функций, простые циклы, работа со строками и списками. Именно здесь интерпретатор CPython теряет больше всего времени на разбор байт-кода, проверки типов и прочую бюрократию. Nuitka всю эту бюрократию убирает — отсюда и впечатляющие +335% (или 3.35-кратное ускорение). По сути, машина едет по идеальной трассе без единого препятствия. Но реальный проект — это не трасса, а городской трафик. Там есть другие машины, светофоры, пешеходы. Ускорение от Nuitka зависит от того, на чём именно ваш код тратит время. И вот тут начинаются нюансы.

Что Nuitka действительно хорошо ускоряет: общий Python-код, веб-фреймворки, бизнес-логику, скрипты с большим количеством вызовов функций и операций со структурами данных. По сути — почти всё, что не является чистой математикой.

Что Nuitka ускоряет не очень: числодробилки без использования типизации. Если у вас цикл умножения матриц на чистых Python-списках — не ждите чуда. Тут нужны другие инструменты: Numba с JIT-компиляцией для математических функций или Cython с ручной типизацией для максимальной производительности.

Важный момент: если ваша задача I/O-bound (много чтения с диска, сетевых запросов), компиляция не сильно поможет — узким горлышком будет диск или сеть. Но если CPU-bound — прирост будет реальным.

Для сравнения: PyPy с JIT-компиляцией может давать в среднем 7.6-кратное ускорение на синтетических тестах, но не всегда совместим со всеми библиотеками. Cython при ручной типизации может разгонять отдельные участки в десятки раз — но требует переписывания кода. Nuitka же даёт прирост «из коробки», почти без изменений.

Сравнение с PyInstaller и Cython: что выбрать в 2026 году

У каждого инструмента своя ниша:

  • PyInstaller — когда нужно быстро упаковать скрипт в один файл для Windows, чтобы отдать заказчику. Главные минусы: медленный старт (3-8 секунд против 0.5-2 у Nuitka), уязвимость для декомпиляции, больший размер файла. Зато настройка предельно проста: pyinstaller --onefile my_script.py — и готово.

  • Cython — ваш выбор, если нужно выжать максимум из математических вычислений. Требует ручной типизации (файлы .pyx), сложнее в настройке, но даёт наибольший прирост в числодробилках. Подход из разряда: «Я знаю, что делаю, и готов потратить время на оптимизацию».

  • Nuitka — золотая середина. Почти не требует изменений в коде, компилирует всё разом, защищает исходники, генерирует быстрые бинарники. Идеально для десктопных приложений и случаев, когда нужно защитить код от посторонних глаз.

Совет

Делаете десктопное приложение или хотите спрятать исходники — берите Nuitka. Нужен быстрый прототип или одноразовая утилита — PyInstaller. Математическое ядро с жёсткими требованиями по скорости — Cython + NumPy. А если у вас смешанный проект — никто не мешает использовать Nuitka для основной логики и Numba для горячих функций.

Взгляд в будущее: JIT в CPython и при чём тут Nuitka

Пока Nuitka занимается ahead-of-time компиляцией, разработчики CPython тоже не сидят сложа руки. В альфа-сборках Python 3.15 JIT-компилятор уже демонстрирует в среднем ускорение на 11-12% на macOS AArch64 и на 5-6% на x86_64 Linux. Цели на будущее: +5% к версии 3.15 и +10% к 3.16, плюс поддержка free-threading (работы без глобальной блокировки GIL).

Что это значит для нас с вами? Возможно, через пару лет мы увидим комбинацию AOT (Nuitka) + JIT (встроенный в CPython), которая будет давать ещё больший прирост на выходе. Или Nuitka адаптируется и начнёт использовать JIT CPython в скомпилированных бинарниках. В любом случае, соревнование между подходами идёт нам только на пользу.

Практический пример: компилируем за 5 минут

Теория — это хорошо, но давайте попробуем Nuitka 4.0 в деле.

Шаг 1. Установка:

pip install nuitka

Шаг 2. Компиляция в standalone-режиме:

nuitka --standalone --mingw64 my_script.py

Если у вас macOS или Linux, можно использовать Clang вместо MinGW:

nuitka --standalone --clang my_script.py

Шаг 3. Запуск бинарника:

./my_script.dist/my_script.bin
# или на Windows:
my_script.dist\my_script.exe

Пара советов по ускорению компиляции: используйте флаг --jobs с количеством ядер вашего процессора, чтобы распараллелить сборку. Не включайте LTO без необходимости — оно того стоит, но при отладке только замедляет процесс.

Заключение

Nuitka 4.0 — это не просто очередное обновление в списке «пофиксили баги, добавили пару фич». Это качественный скачок для всех, кто хочет выжать максимум из Python без переписывания кода на других языках. Новые бэкенды (Zig и Clang), поддержка Python 3.14, расширенная совместимость с популярными библиотеками делают этот инструмент готовым к серьёзному продакшену.

Если вы ещё не пробовали Nuitka — сейчас самое время. Возьмите свой проект, прогоните через компилятор и сравните скорость. Результат может вас удивить. Делитесь цифрами в комментариях — интересно, у кого какой прирост получится на реальных задачах. И да, если нашли баг или что-то не компилируется — разработчики Nuitka активно собирают обратную связь на GitHub. Поможем им сделать инструмент ещё лучше.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

0%JIT в самом CPython убьёт необходимость в сторонних компиляторах типа Nuitka0

0%Nuitka и JIT в Python 3.15+ будут работать в паре и дадут двойной профит0

0%Всё останется примерно как сейчас: кому надо — тот компилирует, остальным и так норм0

0%Появится что-то принципиально новое, о чём мы пока не знаем0

Никто еще не голосовал. Воздержавшихся нет.