mb_substr

0pt

これするとなかなか終わらない。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     -----
 10,000,000   151.35     -----

うー、遅い。12MBだと10,000,000ぐらいだからこりゃ終わらないね!
か指数的に増えてるなーなでだろ。



http://mindia.jp/book/456/title/mb_substr

なるほど!そうかも!

「mb_substr」について友人に書いてもらう。

あなたにとって「mb_substr」とは?

ログインするとワンクリックでキーワードを投稿できます

ログインする 新規登録する

お気に入りの説明

2 pt
http://mindia.jp/book/akkun/title/mb_substr PHPの実装を読んでないけど、実験結果とマルチバイト文字の性質からから推測。 asciiのみの文字列の時は1文字1byteを想定しているので、先頭からn文...
もっと読む

関連したキーワードを持つお気に入り

他の人の「mb_substr」を見る