drastic slowdown for copies

Momo via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri May 29 01:08:11 PDT 2015


On Friday, 29 May 2015 at 07:51:31 UTC, thedeemon wrote:
> On Thursday, 28 May 2015 at 21:23:11 UTC, Momo wrote:
>
> Ah, actually it's more complicated, as it depends on inlining a 
> lot.
Yes. And real functions are more complex and inlining is no 
reliable option.
> Indeed, without -O and -inline I was able to get by_ref to be 
> slightly slower than by_copy for struct of 4 ints. But when 
> inlining turns on, the numbers change in different directions. 
> And for 5 ints inlining influence is quite different:
>
> 4 ints:             5 ints:
> -release
> by ref: 53          by ref: 53
> by copy: 57         by copy: 137
> by move: 54         by move: 137
>
> -release -O
> by ref: 38          by ref: 34
> by copy: 54         by copy: 137
> by move: 49         by move: 137
>
> -release -O -inline
> by ref: 15          by ref: 20
> by copy: 72         by copy: 91
> by move: 72         by move: 91

So as you can see, it is 2-3 times slower. Is there an 
alternative?


More information about the Digitalmars-d-learn mailing list