Affamative Way

前向きにグダグダいいながらコード書く

PHPでtrim+全角スペースを取り除く時のベンチマークを取って見た

全角スペースを取り除くのにどっちが早いのかな〜

  • 全角スペースを半角にしてからtrim
<?php
trim( mb_convert_kana( $hoge, "s"));
<?php
mb_ereg_replace( "^( | |\t|\n|\r|\0|\x0B)*|( | |\t|\n|\r|\0|\x0B)*$", "", $hoge);

ベンチの結果、上の方が早いみたいっす。。。


詳細は以下より

書いたソース

<?php
$hoge = " \t \n  適当な文字列 \t  \t\n";

print 'trim+mb_convert_kana<br/>';
$start_time = microtime(true);
for( $i = 0; $i <= 200000; $i++) {
    trim( mb_convert_kana( $hoge, "s"));
}
$end_time = microtime( true);
$time = $end_time - $start_time;
print " {$time}ミリ秒";
print "<br/>----------------------------------<br/>";

print 'mb_ereg_replace<br/>';
$start_time = microtime( true);
for( $i = 0; $i <= 200000; $i++) {
    mb_ereg_replace( "^( | |\t|\n|\r|\0|\x0B)*|( | |\t|\n|\r|\0|\x0B)*$", "", $hoge);
}
$end_time = microtime( true);
$time = $end_time - $start_time;
print " {$time}ミリ秒";
print "<br/>----------------------------------<br/>";

実験環境1

  • 1回目
trim + mb_convert_kana
9.2487151622772ミリ秒
----------------------------------
mb_ereg_replace
15.671895027161ミリ秒
----------------------------------
  • 2回目
trim + mb_convert_kana
9.3685929775238ミリ秒
----------------------------------
mb_ereg_replace
15.768704891205ミリ秒
----------------------------------
  • 3回目
trim + mb_convert_kana
9.2497129440308ミリ秒
----------------------------------
mb_ereg_replace
15.544082164764ミリ秒
----------------------------------

実験環境2

  • 1回目
trim + mb_convert_kana
0.711861133575ミリ秒
----------------------------------
mb_ereg_replace
4.96990203857ミリ秒
----------------------------------
  • 2回目
trim + mb_convert_kana
0.724739789963ミリ秒
----------------------------------
mb_ereg_replace
5.06015396118ミリ秒
----------------------------------
  • 3回目
trim + mb_convert_kana
0.693895101547ミリ秒
----------------------------------
mb_ereg_replace
5.03003406525ミリ秒
----------------------------------

実験環境3

  • 1回目
trim + mb_convert_kana
0.491611003876ミリ秒
----------------------------------
mb_ereg_replace
1.36231207848ミリ秒
----------------------------------
>||

- 2回目
>||
trim + mb_convert_kana
0.467578172684ミリ秒
----------------------------------
mb_ereg_replace
1.30224108696ミリ秒
----------------------------------
  • 3回目
trim + mb_convert_kana
0.46227312088ミリ秒
----------------------------------
mb_ereg_replace
1.33242917061ミリ秒
----------------------------------

蛇足

ぶちゃけると正規表現を出したのが僕で、もう一方を同僚が出したのなんですが。。。。

  • メッセにて

・・・(ベンチの結果を報告)
cos31 の発言:
 完全に負けた。。。orz
同僚@trimし忘れた の発言:
 ごめん無駄にうれしい。ありがとうw
cos31 の発言:
 正規表現好きとしては悲しくて仕方がない。。。。
同僚@trimし忘れた の発言:
 ごめんwww
 すごい顔笑ってるけど、ごめんw

すげーバカにされてます・゚・(ノ∀`)・゚・。