Using D

simendsjo via Digitalmars-d digitalmars-d at puremagic.com
Fri Jul 11 09:53:05 PDT 2014


On 07/11/2014 06:28 PM, Russel Winder via Digitalmars-d wrote:
> On Fri, 2014-07-11 at 17:43 +0200, simendsjo via Digitalmars-d wrote:
> […]
>> A little anecdote.. I once got a 20% speed increase in Python by
>> "moving" a variable instantiation outside a tight loop.
>>   i = 0
>>   # loop here
>>     i = something
>>
>> rather than
>>   # loop here
>>     i = something
> 
> This is interesting. I can believe there is some performance benefit,
> but I am not sure I believe 20% improvement. If you can send me the code
> you were using, I would like to do some benchmarking on this.

Yes, I was very perplexed when I was profiling and finally found the
main offender. Unfortunately I don't have the code - it was a project
done for a past employer back in 2006/2007 (Python 2.4 IIRC).

>> The compiler wasn't smart enough to do this.
> 
> The Python compiler cannot and will never be able to do any such thing.
> Indeed if it did any such thing, it would be an error since it
> significantly changes the semantics of the program. Thus not doing this
> is not the fault of the compiler.  The fact that you were able to do
> this and it appeared to give you the same results just means that the
> change in program semantics did not affect your computation. Which is
> good, but not something the compiler could determine.

I think of this as a fault in the compiler. It was quite obvious (to me)
that nothing else relied on the value so the value didn't have to be
created on each iteration.



More information about the Digitalmars-d mailing list