- Status Assigned
- Percent Complete
- Task Type Bug Report
- Category src → client
- Assigned To No-one
- Operating System Windows
- Severity Medium
- Priority Very Low
- Reported Version Development
- Due in Version 0.5.0-alpha
-
Due Date
Undecided
- Votes
- Private
Attached to Project: Project::OSiRiON
Opened by Michael Rodenhurst - 2011-07-06
Last edited by Stijn Buys - 2013-01-19
Opened by Michael Rodenhurst - 2011-07-06
Last edited by Stijn Buys - 2013-01-19
FS#56 - Extremely slow to load.
Windows is extremely slow to load compared to other platforms.
$time ./src/osirion +connect +quit
Linux: 3.3 seconds
Windows: 23.7 seconds
This may be related to the binaries being produced via mingw:
http://osdir.com/ml/gnu.mingw.msys/2006-03/msg00024.html
The best solution is to probably use a Visual C++ toolchain for windows binaries.
I've found that no amount of gcc options will cause an increase in performance worth mentioning. Using the following crazy concoction of cflags, I've found that in total it took about 1 second off the load time in windows (average weighing of 5 attempts)
flags .............. -pipe -O3 -ffast-math -mfpmath=sse -mpc80 -mhard-float -s -march=core2 -mtune=core2 -minline-all-stringops -fstrict-overflow -fno-asynchronous-unwind-tables -fno-non-call-exceptions -fno-unwind-tables -fmerge-all-constants -fira-loop-pressure -fno-exceptions -fstrict-aliasing -fno-ident -fomit-frame-pointer -mms-bitfields
No, the answer is not MSVC, MSVC builds are only slightly faster.
When using iterators in C++, there's a distinct performance difference between it++ and ++it.
I optimized all iterator loops in the map loader by replacing it++ with ++it where possible.
There's a noticable performance gain on windows.