ForgeZero 4.1 vs make: ускорили сборку почти в 3 раза
ForgeZero 4.1 vs make: ускорили сборку почти в 3 раза
Я создатель ForgeZero — современной build system, которая может заменить классический make без тонны legacy-overhead.
На релизе ForgeZero 4.1 прогнал benchmark против GNU Make на реальном проекте. Результат:
Что сравнивал
GNU Make:
make -j4
ForgeZero:
./fzt -dir . -out fz_out
Замер через hyperfine:
hyperfine './fzt -dir . -out fz_out' 'make -j4'
Результаты
ForgeZero
Time (mean ± σ): 77.0 ms ± 1.5 ms Range: 75.5 ms … 84.5 ms
GNU Make
Time (mean ± σ): 225.3 ms ± 1.1 ms Range: 223.1 ms … 226.9 ms
Итог
ForgeZero быстрее GNU Make в 2.92 раза.
Почти 3x ускорение на обычной incremental-сборке.
Почему ForgeZero быстрее
1. Нет shell overhead
make постоянно создаёт shell-процессы. ForgeZero выполняет build pipeline напрямую, без лишних fork/exec.
2. Более дешёвый dependency graph
Без legacy-механик вроде:
сложного парсинга Makefileimplicit rulespattern matchingмногоуровневого variable expansion
ForgeZero строит dependency graph напрямую и обновляет только то, что реально изменилось.
3. Нормальный parallel scheduler
Вместо старой модели -j используется более лёгкий task scheduler с меньшими накладными расходами.
4. Zero-config
Без километровых Makefile. ForgeZero сам понимает структуру проекта и запускает сборку сразу.
ForgeZero 4.1 уже доступен
Это не концепт и не эксперимент — ForgeZero уже релизнут.
Интересно услышать мнение людей, которые до сих пор живут на make.