ホームページ  >  記事  >  バックエンド開発  >  php array_push と $arr[]=$value のパフォーマンスの比較

php array_push と $arr[]=$value のパフォーマンスの比較

PHP中文网
PHP中文网オリジナル
2017-06-07 14:34:261390ブラウズ

1.array_push メソッド

array_push メソッドは、1 つ以上の要素を配列の末尾にプッシュします。

int array_push ( array &$array , mixed $var [, mixed $... ] )

array_push() は配列をスタックとして扱い、渡された変数を配列の最後にプッシュします。配列の長さは、スタックにプッシュされた変数の数に応じて増加します。
以下と同じ効果:

<?php
$arr[] = $value;
?>

2. array_push と $arr[]=$value のパフォーマンスを比較します

array_push を使用して 1000000 要素をプッシュします

<?php
$starttime = get_microtime();
$arr = array();
for($i=0; $i<1000000; $i++){
    array_push($arr, $i);
}
$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);

function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());
    return (float)$usec + (float)$sec;
}
?>

実行時間: 2735.545158 ミリ秒

$arr[] を使用します= $value は 100,000 個の要素をプッシュします

<?php
$starttime = get_microtime();
$arr = array();
for($i=0; $i<1000000; $i++){
    $arr[] = $i;
}
$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);

function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());
    return (float)$usec + (float)$sec;
}
?>

実行時間: 417.458057 ミリ秒

結果: 1 つの要素がプッシュされるたびに、$arr[]=$value を使用すると、array_push メソッドを使用するより 7 倍高速になります。

3. 比較のために複数の要素を同時にプッシュします

array_push メソッドを使用して 100000 個の要素をプッシュします (毎回 50 要素)

<?php
$starttime = get_microtime();
$arr = array();
for($i=0; $i<1000000; $i=$i+50){
    array_push($arr, $i,$i+1,$i+2,$i+3,$i+4,$i+5,$i+6,$i+7,$i+8,$i+9,$i+10,
        $i+11,$i+12,$i+13,$i+14,$i+15,$i+16,$i+17,$i+18,$i+19,
        $i+21,$i+22,$i+23,$i+24,$i+25,$i+26,$i+27,$i+28,$i+29,
        $i+31,$i+32,$i+33,$i+34,$i+35,$i+36,$i+37,$i+38,$i+39,
        $i+41,$i+42,$i+43,$i+44,$i+45,$i+46,$i+47,$i+48,$i+49);
}
$endtime = get_microtime();
printf("run time %f ms\r\n", ($endtime-$starttime)*1000);

function get_microtime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());
    return (float)$usec + (float)$sec;
}

実行時間: 250.149012 ミリ秒

結果: array_push を使用して複数の要素を一度にプッシュします。 $arr[]=$value を複数回使用してプッシュします。 array_push が一度にプッシュする要素が多いほど、効率が高くなります。

概要:

要素をプッシュする場合、$arr[]=$value を使用すると、関数呼び出しの余分な負担を軽減できるため効率的です。
複数の要素が同時にプッシュされる場合、array_push を使用すると、ファイルの末尾へのポインターを繰り返し取得する必要がないため、より効率的です。


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