ホームページ  >  記事  >  バックエンド開発  >  PHP 文字セグメンテーションのエクスプロード、スプリット、preg_split のパフォーマンス比較

PHP 文字セグメンテーションのエクスプロード、スプリット、preg_split のパフォーマンス比較

WBOY
WBOYオリジナル
2016-06-20 13:00:351419ブラウズ

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 よりも優れています


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。