Hi Craig,
I've not seen the 3-fold time differences you report - can you post an example that demonstrates this? The example I posted did 5,000,000 assignments with the m. on the left and 5,000,000 without the m. in loops of 100,000.
I've updated the analysis to chech paired results - much better indication:
select avg(nWith) as AvgWith, avg(nWithout) as AvgWithout, max(nWith) as MaxWith, max(nWithout) as MaxWithout, ;
min(nWith) as MinWith, min(nWithout) as MinWithout, Max(nWith - nWithout) as MaxDelta, Min(nWith-nWithout) as MinDelta, ;
avg(nWith - nWithout) as AvgDelta ;
from results
An the results show that the difference always exists but, on my machine at least, the differences are pretty small:
Avgwith Avgwithout
0.328 0.300
Maxwith Maxwithout
0.350 0.311
Minwith Minwithout
0.320 0.290
Maxdelta Mindelta Avgdelta
0.059 0.009 0.028
The maximum difference in 100,000 assignments is 6/100ths of a second - certainly not the 300% difference that you get. I'm not sure there's much more blood to squeeze out of this particular optimisation stone :)
Cheers,
Andrew
>
>Andrew,
>
>I've tested this in every version since 2.5 and continually get the same results. Lines with the m. take 3x longer to execute. This can show outside loops. If you have several assignment statements, you'll get a definate speed degradation.
If we were to introduce Visual FoxBase+, would we be able to work from the dotNet Prompt?
From Top 22 Developer Responses to defects in Software
2. "It’s not a bug, it’s a feature."
1. "I thought I fixed that."
All my FoxTalk and other articles are available on my
web site.
Unless specifically identified otherwise, anthing posted here is purely my opinion and may or may not reflect the policies or practices of Microsoft.