https://github.com/masakielastic/php-ext-striter
str_iter の実装には PCRE2 JIT が使われています。
php -d extension=modules/striter.so benchmark.php
[ASCII]
grapheme_* : 0.003695 sec, mem: 0 bytes
IntlBreakIterator : 0.161382 sec, mem: 0 bytes
preg_match_all によるユーザー関数: 0.003848 sec, mem: 0 bytes
preg_match によるユーザー関数: 0.006448 sec, mem: 0 bytes
str_iter拡張 : 0.012894 sec, mem: 0 bytes
[日本語]
grapheme_* : 0.120388 sec, mem: 0 bytes
IntlBreakIterator : 0.156671 sec, mem: 0 bytes
preg_match_all によるユーザー関数: 0.009735 sec, mem: 0 bytes
preg_match によるユーザー関数: 0.020445 sec, mem: 0 bytes
str_iter拡張 : 0.115297 sec, mem: 0 bytes
[絵文字]
grapheme_* : 0.064137 sec, mem: 0 bytes
IntlBreakIterator : 0.153531 sec, mem: 0 bytes
preg_match_all によるユーザー関数: 0.003629 sec, mem: 0 bytes
preg_match によるユーザー関数: 0.004293 sec, mem: 0 bytes
str_iter拡張 : 0.008510 sec, mem: 0 bytes
[混在]
grapheme_* : 0.091253 sec, mem: 0 bytes
IntlBreakIterator : 0.162230 sec, mem: 0 bytes
preg_match_all によるユーザー関数: 0.007549 sec, mem: 0 bytes
preg_match によるユーザー関数: 0.016544 sec, mem: 0 bytes
str_iter拡張 : 0.063441 sec, mem: 0 bytes