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

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

jacklove
jackloveオリジナル
2018-06-09 10:27:391769ブラウズ

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 で 1,000,000 個の要素をプッシュします

<?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 ms

$arr[] = $value を使用してプッシュします100000 要素

<?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 ms

結果: 一度に 1 つの要素をプッシュします。## を使用します。 #$arr []=$value は、array_push メソッドを使用するよりも 7 倍高速です。

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

array_push メソッドを使用して、毎回 50 要素ずつ 100000 要素をプッシュします

<?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 を使用すると、ファイルの末尾へのポインターを繰り返し取得する必要がないため効率的です。


結果:

$arr[]=$value を使用して一度に 1 つの要素をプッシュする方が、array_push メソッドを使用するより高速です7 回。 この記事では、php array_push と $arr[]=$value のパフォーマンスの比較について説明します。その他の関連コンテンツについては、php 中国語 Web サイトを参照してください。

関連する推奨事項:

mysql タイムスタンプ フォーマット関数 from_unixtime の使用方法

mysql 関数 concat の使用方法および group_concat


mysql innodb の起動に失敗して再起動できない場合の対処方法の説明

以上がphp array_push と $arr[]=$value のパフォーマンスの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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