IDEA: Using Ninja instead of make
Closed this issue · 2 comments
I've done some testing with using ninja instead of make and have attached the results
Build system used | Run 1 | Run 2 | Run 3 | Run 4 | Run 5 | Run 6 | Run 7 | Run 8 | Run 9 | Run 10 | Avg | Range |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Ninja | 6.94s | 7.00s | 6.96s | 7.07s | 7.03s | 6.86s | 6.98s | 7.48s | 7.42s | 6.90s | 7.06s | 0.62 |
Make (normal) | 12.74s | 12.94s | 13.19s | 13.11s | 13.10s | 13.16s | 12.64s | 12.68s | 12.82 | 13.37s | 12.97s | 0.73 |
Make (parallel) | 7.39s | 7.66s | 7.78s | 7.46s | 8.25s | 7.93s | 7.55s | 7.44s | 8.06s | 7.79s | 7.73s | 0.86 |
Tests were done w/o ccache, and were performed as such:
rm -rf build
mkdir build
cd build
cmake .. / cmake .. -G "Ninja"
make / ninja / make -j$(expr $(nproc) + 1)
Thoughts? Ninja already exists in Ubuntu's repos, so no external PPA is needed for travis (see diff). Time saves aren't much now, but as the project scales it could prove useful. Tested on my fork on travis, the average time saves are around 10-20 seconds or so make vs ninja, and about 5-10 seconds ninja vs parallel make.
Hey elken,
Thanks a lot for running those local tests - we may not need those time saves at the moment, but it looks like you already have a functioning diff that would scale well with the codebase. We'd be welcome to look at a pull request with this build system and take a look at the live Travis build times.
If you do, please make sure to use the dev branch. Let's not repeat yesterday's boogaloo. =)
Ha, no sorry, it's been a while since I've worked with a shared codebase & I've gotten into the habit of just dumping everything in master. shudders
It won't happen again :)