On 18.11.2014 00:14, Vladimir Panteleev wrote:
I proposed to build Phobos and Druntime with stack frames enabled:
[...]
Personally, I think the 0.1% is practically negligible considering the
advantages. My proposal was rejected, so I'd like to hear more opinions
about this. What do you think?
I'm in favor of this change, but wanted to test the effect myself. I ran
the druntime/benchmark tests with and without the -gs option. These
tests mostly exercise the GC and dynamic and associative array
implementations. Please note that I'm running a mobile i7 and benchmarks
can vary quite a bit (average and standard deviation of 5 runs):
Win32 master: 33.8s +- 0.5s
Win32 master -gs: 35.8s +- 0.6s
=> +5.9%
Being slighlty shocked by the difference, I reran the tests, but without
a significant different result. Can someone else reproduce this difference?
On Win64 the tests need quite a bit more memory so they get slower, but
the difference is a lot less:
Win64 master: 46.1s +- 0.8s
Win64 master -gs: 46.3s +- 0.4s
=> +0.4%
This can be compensated with tiny optimizations, e.g.
https://github.com/D-Programming-Language/druntime/pull/1027, which are
lurking everywhere.