Joshua Zeidner wrote: > On 1/17/07, Jerry Davis wrote: >> >> On Wednesday 17 January 2007 19:34, Kevin Brown wrote: >> > I'm working on a small script (so far only about 1000 lines long) and >> > I'm finding that I'd like a faster way to do: >> > >> > $variable = "." x ($start - 1); >> > >> > which is incredibly slow since it is creating sometimes on the order of >> > 100,000 to 3,000,000 (yes, Million) periods to fill up the needed >> string. >> >> if you do this more than once in the code, or in a loop; >> why don't you set up a variable at the top of your program that has the >> needed >> dots for the maximum number you would need -- lets say 3,000,000. >> >> then wherever you want n number of dots, just do $variable = >> substr($dots, >> 1, >> n). this should be much faster. > > > > Jerry, I had the same idea, but are you sure that this operation will not > allocate a new buffer and copy the entire string( essentially eliminating > the benefit )? > > jmz > --- It probably will. The simplest method I can think of to speed it up is to do something like this: $count = ($start - 1) $remainder = $count % 10000 $base = "." x 10000 $variable = $base x ($count / 10000) $tail = "." x $remainder $variable = $variable . $tail That should reduce the number of string reallocations by a factor of roughly 10,000. ==Joseph++ > > jerry >> >> > >> > I've tried using: >> > sprintf +("%s" x ($start - 1)), "."; >> > >> > but I must not have the syntax correct as it doesn't create the needed >> > "." characters. >> > >> > Any thoughts on what is wrong with the sprintf syntax or what else I >> > could try to speed this up? --------------------------------------------------- PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us To subscribe, unsubscribe, or to change you mail settings: http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss