The goal is to try to reduce compilation times on all platforms.
I've been using -ftime-trace; and although it says I've performed impressive optimizations; overall build times have not drastically decreased (includes buildings samples):
Code: Select all
Before Clang9 C++14
real 2m8,344s
user 15m53,879s
sys 0m50,416s
After Clang9 C++14
real 1m58,393s
user 14m40,097s
sys 0m47,608s
Before GCC C++98
real 2m2,504s
user 14m32,773s
sys 1m2,664s
After GCC C++98
real 1m57,145s
user 13m54,947s
sys 1m1,055s
Before GCC C++14
real 3m59,728s
user 29m34,520s
sys 1m39,011s
After GCC C++14
real 3m40,869s
user 27m11,995s
sys 1m30,205s
I wasn't able to benchmark Visual Studio yet (but it compiles fine).
According to time trace, parsing <string> takes a lot of time, so that may benefit from using precompiled headers on all platforms (right now we're only using precompiled headers in Windows)
OK so what?
If you've got further ideas to improve build times, please bring them on here or in the ticket
If you can try the new branch, then please do! It should be stable as I only moved headers around and used a few forward declaration tricks.
But if you have Ogre as a dependency it may break with silly missing header errors.
Let me know what you encounter!