×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
 
Jon Paris wrote:
Hmmm - Barbara would know better - but given that code it is  
conceivable that the entire content of the FOR loops is completely  
removed by the optimizer.
I'm not really sure how clever the optimizer is, but in this case it 
doesn't seem to optimize out the loop content; I get different durations 
depending on how many iterations I give it.
I was told once a long time ago that performance tests should have 
enough iterations so the loop takes at least 30 seconds to run, to 
reduce the impact of any setup (like getting timestamps).  I usually set 
up my performance tests to get the number of iterations as a parameter 
or from DSPLY, so I can try ever bigger values until I get up to around 
30 seconds for at least one of the scenarios.
A million iterations for the multiplication doesn't seem like enough to 
get anywhere near 30 seconds.  It could be the case that most of the 
time being measured is actually being taken up fetching the timestamps.
In this case, that doesn't seem to be case, though.  Running with just 
one iteration gives a "zero" duration, so the fetching of the timestamps 
doesn't seem to be significant.  There's does seem to be a significant 
difference between / and *.  Interestingly though, on my system, 
%DIV(num:10000) is almost as fast as multiplication by .00001,
even unoptimized.
Unoptimized, with 50 million iterations:
50000000
DSPLY  divide with /   :    25.440000
DSPLY  divide with %div:    12.351000
DSPLY  mult by .00001  :    10.221000
Optimized, with 50 million iterations:
DSPLY  divide with /   :    17.073000
DSPLY  divide with %div:     4.307000
DSPLY  mult by .00001  :     4.307000
As an Amazon Associate we earn from qualifying purchases.