mb_substrの履歴

これするとなかなか終わらない。mb_substrが遅すぎる?

<?php
$string = file_get_contents('big.txt'); // 12MBぐらいのデータ

$len = mb_strlen($string);
for ($i = 0; $i < $len; $i++){
    $char = mb_substr($string, $i, 1);
}
var_dump('ok');


計ってみた

         N  substr(sec)  mb_strlen(sec)
 ---------------------------------------
        100     0.0017    0.001
      1,000     0.015     0.01
     10,000     0.15      0.3
     20,000     0.31      1.11
     30,000     0.44      2.38
     50,000     0.75      6.19
    100,000     1.5      23.03
  1,000,000    14.98

うー、遅い。12MBだと10,000,000ぐらいだからこりゃ終わらないね!