Исправление Deleted, (текущая версия) :
λ> ./gen_kb_str.py 64
1 11 1111111 1 11 1111 11 1 1 111 1 11 1 11111111111 11111 1%
λ> TestString=$(./gen_kb_str.py 4096)
λ> time ./count $TestString >>/dev/null
./count $TestString >> /dev/null 7,70s user 0,00s system 100% cpu 7,702 total
λ> time ./count_spaces $TestString >>/dev/null
./count_spaces $TestString >> /dev/null 7,14s user 0,00s system 100% cpu 7,138 total
λ> time ./count_spaces2 $TestString >>/dev/null
./count_spaces2 $TestString >> /dev/null 1,35s user 0,00s system 99% cpu 1,353 total
И опять, простое (count_spaces) быстрее.
p.s. А count_spaces2 это Снова задачка (комментарий).
p.p.s. Если распределение пробелов/не_пробелов сделать 3/1, то ситуация не меняется.
λ> ./gen_kb_str.py 64
1 1 1 1 1 1 1 1 1 1 %
λ> TestString=$(./gen_kb_str.py 4096)
λ> time ./count $TestString >>/dev/null
./count $TestString >> /dev/null 5,58s user 0,00s system 100% cpu 5,574 total
λ> time ./count_spaces $TestString >>/dev/null
./count_spaces $TestString >> /dev/null 4,60s user 0,00s system 100% cpu 4,600 total
λ> time ./count_spaces2 $TestString >>/dev/null
./count_spaces2 $TestString >> /dev/null 0,84s user 0,00s system 99% cpu 0,840 total
Исправление Deleted, :
λ> ./gen_kb_str.py 64
1 11 1111111 1 11 1111 11 1 1 111 1 11 1 11111111111 11111 1%
λ> TestString=$(./gen_kb_str.py 4096)
λ> time ./count $TestString >>/dev/null
./count $TestString >> /dev/null 7,70s user 0,00s system 100% cpu 7,702 total
λ> time ./count_spaces $TestString >>/dev/null
./count_spaces $TestString >> /dev/null 7,14s user 0,00s system 100% cpu 7,138 total
λ> time ./count_spaces2 $TestString >>/dev/null
./count_spaces2 $TestString >> /dev/null 1,35s user 0,00s system 99% cpu 1,353 total
И опять, простое (count_spaces) быстрее.
p.s. А count_spaces2 это Снова задачка (комментарий).
Исходная версия Deleted, :
λ> ./gen_kb_str.py 64
1 11 1111111 1 11 1111 11 1 1 111 1 11 1 11111111111 11111 1% λ> TestString=$(./gen_kb_str.py 4096)
λ> time ./count $TestString >>/dev/null
./count $TestString >> /dev/null 7,70s user 0,00s system 100% cpu 7,702 total
λ> time ./count_spaces $TestString >>/dev/null
./count_spaces $TestString >> /dev/null 7,14s user 0,00s system 100% cpu 7,138 total
λ> time ./count_spaces2 $TestString >>/dev/null
./count_spaces2 $TestString >> /dev/null 1,35s user 0,00s system 99% cpu 1,353 total
И опять, простое (count_spaces) быстрее.
p.s. А count_spaces2 это Снова задачка (комментарий).