Hi all,
I've built mingw with -DHB_USE_TLS (the rest is default),
then I got 'undefined reference to '__emutls_get_address'
errors on linking. Such symbol doesn't BTW exist in MinGW
4.3.2 supplied libs.
Then I went with the fully default build, and it worked okay.
Final mingw speedtst results are:
ST: 64.06
MT: 87.42
Here are some Windows compiler comparison results
(speedtst / Total application time)
=================================================
1.1.0 (r9488)
- -DHB_NO_DEBUG [ -DHB_NO_TRACE is default ] -DHB_FM_STATISTICS_OFF -
DHB_FM_DL_ALLOC
- Harbour: -l -gc3 [I didn't mean to test with -gc3, but I had it
there for production, and forgot about it]
- MSVS switches: (all default C mode)
- GCC switches: -O3 -fomit-frame-pointer -ffast-math -march=pentiumpro
- BCC switches: -6 -OS -Ov -Oi -Oc -Q -tWM
Compiler ST MT overhead
-------- ------ ------ --------
MSVS2008 32.41 46.09 42%
GCC432 46.58 66.02 41% [NOTE: GCC doesn't have TLS support
AFAIK]
BCC58 52.64 72.75 38%
1.0.1 (release)
- -DHB_NO_DEBUG -DHB_NO_TRACE [ -DHB_FM_STATISTICS_OFF is default ]
- Rest of switches same as above.
Compiler ST
-------- ------
MSVS2008 41.06
GCC432 53.25
BCC58 52.80
Basically I'm getting a consistent 36-42% MT overhead with all
compilers, so I wouldn't be surprised if overhead would highly
depend on exact CPU model and maybe Windows version.
The other conclusion is that MSVS2008 seems to generate far
the best code, 1.1.0 MT mode even beats 1.0.1 ST mode with all
compilers.
[ Would be interesting to see how removing -gc3 would change
above results, but I'll leave that for another time. ]
Brgds,
Viktor
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour