in reply to Emptying (and refilling) an array.
It looks like your trying to benchmark preallocation, but you failed at doing that. The array already has at least 101 elements allocated before you attempt to initialize it. The array is not freed from pass to pass. That means you're basically benchmarking the fastest way to do nothing. Obviously, actually doing nothing ("my @working;") will be at least as fast as everything else.
"my @working = undef" doesn't make sense. It assigns one element to the array. Maybe you were thinking of "undef @working" which frees the internal buffer of the array?
It's curious that assign_length and x_with_value preallocate 100 elements then proceed to store 101 elements. Not that it matters, because the array already has at least 101 elements from the previous pass of the loop.
It's curious that your didn't test "$#working = 100;" to preallocate the array. Not that it matters, because the array already has at least 101 elements from the previous pass of the loop.
"my @working = ();" can be written as just "my @working;"
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Emptying (and refilling) an array.
by DStaal (Chaplain) on Jan 12, 2009 at 16:22 UTC | |
by ikegami (Patriarch) on Jan 12, 2009 at 16:38 UTC | |
by JavaFan (Canon) on Jan 12, 2009 at 16:43 UTC |