[devel] make ninja-build fast again

Ivan A. Melnikov iv на altlinux.org
Ср Май 14 20:54:08 MSK 2025


Приветствую.

Я тут обнаружил, что ninja-build в Сизифе стал как-то хтонически
небыстр. Чтобы оценить масштаб трагедии, я собрал из подручных
материалов небольшой бенчмарк[1], запустив который на tmpfs
получил потрясающие результаты:

make  -- 0:01.00elapsed 
samu  -- 0:00.90elapsed
ninja -- 0:45.00elapsed

Реально, в 45 раз мелненнее make и в 50 раз медленнее samurai?
Её нужно спасать!

В логах обнаружилось, что при сборке ninja потерялся %optflags,
и она собиралась вообще без оптимизаций. Вернув %optflags,
я добился ускорения чуть больше чем в 2 раза, до ~19 секунд.

Однако возвращение %optflags позволило убрать параметр `--debug`,
всё равно получая работоспособный debuginfo (да, я проверял)
у сборочного скрипта, что, благодаря -DNDEBUG, вернуло
производительность ninja в норму.

В таком виде пакет ушёл в Сизиф (задача 384155 DONE,
надеюсь никому ничего не сломал).

Предлагаю мейнтейнеру как-то проверять производительность
при последующих обновлениях. Также можно перейти на сборку
cmake'ом, как это сделали, например, в debian, чтобы всяческие
best practices следовали за собой сами.

[1] https://git.altlinux.org/people/iv/public/?p=build-tool-benchmarks.git

-- 
  wbr,
    iv m.


Подробная информация о списке рассылки Devel