News . About . Screenshots . Downloads . Forum . Wiki . Tracker . GitLab

FS#56 - Extremely slow to load.

Attached to Project: Project::OSiRiON
Opened by Michael Rodenhurst (Thorn) - Wednesday, 06 July 2011, 23:38 GMT
Last edited by Stijn Buys (Ingar) - Saturday, 19 January 2013, 13:29 GMT
Task Type Bug Report
Category src → client
Status Assigned
Assigned To No-one
Operating System Windows
Severity Medium
Priority Normal
Reported Version Development
Due in Version 0.5.0-alpha
Due Date Undecided
Percent Complete 10%
Votes 0
Private No


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:

The best solution is to probably use a Visual C++ toolchain for windows binaries.
This task depends upon

Comment by Michael Rodenhurst (Thorn) - Thursday, 05 January 2012, 23:14 GMT
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

Comment by Michael Rodenhurst (Thorn) - Sunday, 08 January 2012, 03:03 GMT
No, the answer is not MSVC, MSVC builds are only slightly faster.
Comment by Stijn Buys (Ingar) - Saturday, 19 January 2013, 13:31 GMT
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.