Proj-Ascension/Client

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 :)