[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