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".
|
|---|