Re: Slowdown

*To*: mathgroup at smc.vnet.net*Subject*: [mg53241] Re: Slowdown*From*: Roland Franzius <roland.franzius at uos.de>*Date*: Sun, 2 Jan 2005 04:12:50 -0500 (EST)*Organization*: Universitaet Hannover*References*: <cr33tt$je6$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Maxim wrote: > Consider: > > In[1]:= > Module[{f, L}, > L = f[]; > Do[L = f[L, i], {i, 10^4}] > ] // Timing > > Module[{weirdness, L}, > L = weirdness[]; > Do[L = weirdness[L, i], {i, 10^4}] > ] // Timing > > Out[1]= > {0.015*Second, Null} > > Out[2]= > {3.063*Second, Null} > > Here the timings differ by a factor of 200. Besides, the timing grows > linearly in the first case and quadratically in the second (therefore, for > n=10^5 there will be an approximately 2000 times slowdown). We can only > guess that something goes wrong with the symbol name hashing. The timing difference occurs when the symbol "wierdness" exceeds 8 characters. Test it for "wierdnes". That seems to be a consequence of the machine routine for string comparison. Up to 8 characters can be used without using a memory to memory compare. Of course it should be possible to write a compare routine that makes not such a bit step. -- Roland Franzius

**Follow-Ups**:**Re: Re: Slowdown***From:*yehuda ben-shimol <benshimo@bgu.ac.il>