in reply to Improving Efficiency

That is a very slow way to count characters in a string.

This finds 20 million '0's in a string of 200 million characters in a little over 1/3rd of a second:

C:\test>p1 $s = '0123456789' x 20e6;; print length $s;; 200000000 say time; printf "found %d zeros\n", $s =~ tr[0][]; say time;; 1377952426.42676 found 20000000 zeros 1377952426.78727

Update: The probably reason for your code "flatlining" is because creating an array to hold 200 million individual characters probably requires far more memory (~6.4GB on a 64-bit system) than your system actually has, thus your computer is "thrashing".


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.