ホームページ >バックエンド開発 >PHPチュートリアル >PHP 文字セグメンテーションのエクスプロード、スプリット、preg_split のパフォーマンス比較
これら 3 つの関数はすべて文字列を分割するために使用され、それらのパフォーマンスを比較するためのいくつかの実験を以下に示します。
1. 爆発と分割の比較
は文字で区切られ、10 回実行されます
コード:
for($num=0;$num<9;$num++) { $stime=microtime(); for($i=0;$i<10000;$i++) { explode(',','hello,world'); } $etime=microtime(); printf("explode takes %f \n",$etime-$stime); } for($num=0;$num<9;$num++) { $stime=microtime(); for($i=0;$i<10000;$i++) { split(',','hello,world'); } $etime=microtime(); printf("split takes %f \n",$etime-$stime); }
結果:
爆発には 0.009193 かかります
爆発には 0.007066 かかります
爆発には 0.007623 かかります
爆発には 0.005829 かかります
爆発には 0.005497
かかります
爆発には 0.005734 かかります
爆発には 0.005502 かかります
爆発には 0.005515 かかります
爆発には 0.005524 かかります
分割には 0.008976 かかります
分割には 0.008971 かかります
分割には 0.009030
かかります
分割には 0.009173
かかります
分割には 0.009913 かかります
分割には 0.012656 かかります
分割には 0.012153
かかります
分割には 0.009161
かかります
分割には 0.008948 かかります
結論: すべてをキャラクターごとに分割した場合、スプリットよりもエクスプロイトのパフォーマンスが優れています
分割では通常のルールを使用して分割します:
コード:
for($num=0;$num<9;$num++) { $stime=microtime(); for($i=0;$i<10000;$i++) { explode(',','hello,world'); } $etime=microtime(); printf("explode takes %f \n",$etime-$stime); } for($num=0;$num<9;$num++) { $stime=microtime(); for($i=0;$i<10000;$i++) { split('/,/','hello,world'); } $etime=microtime(); printf("split takes %f \n",$etime-$stime); }
結果:
爆発には 0.005649 かかります
爆発には 0.005719 かかります
爆発には 0.005792 かかります
爆発には 0.005975 かかります
爆発には 0.005723 かかります
爆発には 0.005812 かかります
爆発には 0.005860 かかります
爆発には 0.005756 かかります
爆発には 0.005835 かかります
分割には 0.005158
かかります
分割には 0.005170
かかります
分割には 0.005440 かかります
分割には 0.005402 かかります
分割には 0.005272 かかります
分割には 0.005434 かかります
分割には 0.006389 かかります
分割には 0.005414 かかります
分割には 0.005510
結論: Split で通常のセグメンテーションを使用する場合、2 つのパフォーマンスはほぼ同じです
2. Split と preg_split の比較
コード:
for($num=0;$num<9;$num++) { $stime=microtime(); for($i=0;$i<10000;$i++) { split('/,/','hello,world'); } $etime=microtime(); printf("split takes %f \n",$etime-$stime); } for($num=0;$num<9;$num++) { $stime=microtime(); for($i=0;$i<10000;$i++) { preg_split("/,/","hello,world"); } $etime=microtime(); printf("preg_split takes %f \n",$etime-$stime); }
結果:
分割には 0.005381 かかります
分割には 0.005568
かかります
分割には 0.005107
かかります
分割には 0.005097
かかります
分割には 0.005444 かかります
分割には 0.005538
かかります
分割には 0.005095 かかります
分割には 0.005112
かかります
分割には 0.005087
かかります
preg_split には 0.009364 かかります
preg_split には 0.009568
かかります
preg_split には 0.009037
かかります
preg_split には 0.008957 かかります
preg_split には 0.009021 かかります
preg_split には 0.009656 かかります
preg_split には 0.009038
かかります
preg_split には 0.008962
かかります
preg_split には 0.009412 かかります
結論: split のパフォーマンスは preg_split よりも優れています