Performance

dennis luehring via Digitalmars-d digitalmars-d at puremagic.com
Sat May 31 04:47:43 PDT 2014


Am 31.05.2014 13:25, schrieb dennis luehring:
> Am 31.05.2014 08:36, schrieb Russel Winder via Digitalmars-d:
>> As well as the average (mean), you must provide standard deviation and
>> degrees of freedom so that a proper error analysis and t-tests are
>> feasible.
>
> average means average of benchmarked times
>
> and the dummy values are only for keeping the compiler from removing
> anything it can reduce at compiletime - that makes benchmarks
> compareable, these values does not change the algorithm or result
> quality an any way - its more like an overflowing-second-output bases on
> the result of the original algorithm (but should be just a simple
> addition or substraction - ignoring overflow etc.)
>
> thats the base of all types of non-stupid benchmarking - next/pro step
> is to look at the resulting assemblercode
>

so the anti-optimizer-overflowing-second-output aka AOOSO should be

initialized outside of the testfunction with an random-value - i normaly 
use the pointer to the main args as int

the AOOSO should be incremented by the needed result of the benchmarked
algorithm - that could be an int casted float/double value, the variant 
size of an string or whatever is floaty and needed enough to be used

and then return the AOOSO as main return

so the original algorithm isn't changed but the compiler got absolutely 
nothing to prevent the usage and the end output of this AOOSO dummy value

yes it ignores that the code-size (cache problems) is changed by the 
AOOSO incrementation - thats the reason for simple casting/overflowing 
integer stuff here, but if the benchmarking goes that deep you should 
better take a look at the assembler-level




More information about the Digitalmars-d mailing list