MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Slowdown

  • To: mathgroup at
  • Subject: [mg53254] Re: [mg53241] Re: Slowdown
  • From: yehuda ben-shimol <benshimo at>
  • Date: Mon, 3 Jan 2005 04:29:31 -0500 (EST)
  • References: <cr33tt$je6$> <>
  • Sender: owner-wri-mathgroup at

Hi Roland,
I'm afraid this is not true. Just try to run the code I sent with my 
post.  "weirdness" was time consuming while weirdness1 was not. In 
addition it happened (not consistently) that function name of a SINGLE 
character suffered from this behavior as well.
the code is given below for your convenience.

t = CharacterRange["a", "z"];
Do[fname = StringJoin[t[[Table[Random[Integer, {1,26}], {i}]]]];
Print[i, "\t", fname, "\t", 
	  Module[{fs = ToExpression[fname], L},
          L = fs[];
        Do[L = fs[L, j], {j, 104}]]]], {i, 1, 50}, {5}]


Roland Franzius wrote:

>Maxim wrote:
>>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
>>{0.015*Second, Null}
>>{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.

  • References:
    • Re: Slowdown
      • From: Roland Franzius <>
  • Prev by Date: Re: Thread
  • Next by Date: Mercator projection from with missing earth.pts
  • Previous by thread: Re: Slowdown
  • Next by thread: Re: Re: Re: Slowdown