ForgeZero 4.1 vs GNU Make: ускорение сборки до 4.5x на реальных машинах
ForgeZero 4.1 vs GNU Make: ускорение сборки до 4.5x на реальных машинах
Я — автор ForgeZero, современной build system, которая должна заменить классический
make
без его legacy-overhead.
На релизе ForgeZero 4.1 прогнал серию benchmark-тестов против GNU Make на разных платформах: серверный Ryzen, ноутбучный Intel и старый AMD FX.
Цель была простая: проверить, насколько быстрее можно собирать обычный C/C++ проект без Makefile и shell orchestration.
Как тестировал
GNU Make:
make -j4
ForgeZero:
./fzt -dir . -out fz_out
Измерение через hyperfine:
hyperfine './fzt -dir . -out fz_out' 'make -j4'
Результаты
Платформа
ForgeZero
GNU Make
Ускорение
Ryzen 9 7950X3D (KVM, 1 vCPU)
~80–84 ms
~350–364 ms
4.1x–4.5x
Intel Core i5-10310U
82.2 ms
291.1 ms
3.54x
AMD FX-8370E (AM3+, 8 ядер)
111.0 ms
238.5 ms
2.15x
Что это показывает
Ускорение наблюдается не на одной “удачной” машине, а на совершенно разных CPU:
современный серверный Ryzen;
обычный ноутбук Intel;
старый десктопный AMD FX.
На всех системах ForgeZero стабильно быстрее GNU Make.
Почему ForgeZero быстрее
1. Нет shell overhead
GNU Make постоянно создаёт shell-процессы и тратит время на fork/exec.
ForgeZero выполняет pipeline напрямую.
2. Более дешёвый dependency graph
Без legacy-механик вроде:
парсинга огромных Makefile;
implicit rules;
pattern expansion;
многоуровневых переменных.
ForgeZero строит dependency graph напрямую и обновляет только реально изменённые части проекта.
3. Более эффективный scheduler
Вместо старой модели job scheduling из
make -j
используется собственный lightweight scheduler.
4. Zero-config
Без километровых Makefile.
ForgeZero сам определяет структуру проекта и запускает сборку сразу.
Почему это важно
make
появился в 1976 году.
За почти 50 лет мы привыкли считать build systems «решённой задачей», хотя даже сегодня можно получить ускорение в 2–4.5 раза просто за счёт современной архитектуры.
Если у вас десятки или сотни сборок в день (локально и в CI), такая разница превращается в реально сэкономленное время.
ForgeZero 4.1 уже доступен
GitHub:
Интересно услышать мнение тех, кто до сих пор живёт на
make
.