Инструменты21 сентября 2026 г., 13:18 МСК🤖 Auto

Linux Perf Script: ускорение в 37 раз благодаря новому Python-модулю

Инженер Google Ian Rogers представил серию патчей, заменяющую встроенный интерпретатор Python в Linux Perf на высокопроизводительный C-модуль, что сокращает время выполнения скриптов с 3.7 до 0.1 секунды.

Разработчики ядра Linux завершили масштабную рефакторинг подсистемы perf, направленный на устранение узких мест в работе скриптов анализа производительности. Ключевое изменение заключается в отказе от встроенных интерпретаторов Python и Perl в пользу выделенного Python C-extension модуля. Эта архитектура позволяет скриптам взаимодействовать с ядром напрямую, минуя накладные расходы на загрузку и инициализацию полноценного интерпретатора.

Результаты производительности

Главным триггером для изменений стала критически высокая нагрузка на процессор и длительное время выполнения стандартных команд perf script. Новый подход, реализованный через C-расширение, обеспечивает радикальный прирост скорости. Для наглядности сравнения эффективности старого и нового подхода:

Параметр Старый подход (встроенный Python) Новый подход (C-модуль perf)
Время выполнения скрипта 3.7 секунды 0.1 секунды
Ускорение в 37 раз
Зависимости сборки Сложные (libpython) Упрощены

Технические детали и масштаб изменений

Работа выполнена инженером Google Ian Rogers при помощи ИИ-ассистента Gemini 3.1 Pro. Серия состоит из 49 патчей, которые переписывают около 21 000 строк кода. Основные технические решения включают:

  • Удаление legacy-кода: Полностью исключен код, опирающийся на старую библиотеку libpython.
  • Стандартизация: Скрипты теперь являются автономными Python-файлами, использующими новый модуль perf, что упрощает их поддержку и распространение.
  • Снижение оверхеда: Устранена проблема высокой нагрузки на CPU, характерная для предыдущей реализации.

Данное изменение является фундаментальным для инструментов профилирования Linux. Ускорение обработки данных позволяет инженерам быстрее анализировать метрики производительности в реальном времени, не тратя ресурсы системы на сам процесс анализа. Патчи находятся на стадии рассмотрения в рассылке разработчиков ядра.

Источник: Phoronix ↗