Heim > Backend-Entwicklung > PHP-Tutorial > Leistungsvergleich von PHP array_push und $arr[]=$value

Leistungsvergleich von PHP array_push und $arr[]=$value

PHP中文网
Freigeben: 2023-02-28 22:44:01
Original
1464 Leute haben es durchsucht

1. array_push-Methode

array_push-Methode, schiebt ein oder mehrere Elemente an das Ende des Arrays.

int array_push ( array &$array , mixed $var [, mixed $... ] )
Nach dem Login kopieren

array_push() behandelt das Array als Stapel und schiebt die übergebenen Variablen an das Ende des Arrays. Die Länge des Arrays erhöht sich entsprechend der Anzahl der auf den Stapel verschobenen Variablen.
Der Effekt ist derselbe wie folgt:

<?php
$arr[] = $value;
?>
Nach dem Login kopieren

2. Vergleichen Sie die Leistung von array_push und $arr[]=$value

Verwenden array_push zum Pushen von 1000000 Elementen

<?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;
}
?>
Nach dem Login kopieren

Ausführungszeit: 2735,545158 ms

Verwenden Sie $arr[] = $value zum Pushen von 100000 Elementen

<?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;
}
?>
Nach dem Login kopieren

Ausführungszeit: 417,458057 ms

Ergebnis: Das Pushen jeweils eines Elements mit $arr[]=$value ist siebenmal schneller als mit der Methode array_push.

3. Mehrere Elemente gleichzeitig zum Vergleich verschieben

Verwenden Sie die array_push-Methode, um 100.000 Elemente zu übertragen, jeweils 50 Elemente

<?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;
}
Nach dem Login kopieren

Ausführungszeit: 250,149012 ms

Ergebnis: Die Verwendung von array_push zum gleichzeitigen Pushen mehrerer Elemente ist schneller als die mehrfache Verwendung von $arr[]=$value. Je mehr Elemente array_push gleichzeitig einfügt, desto effizienter ist es.

Zusammenfassung:

Wenn Sie ein Element pushen, ist die Verwendung von $arr[]=$value effizient, da dadurch die zusätzliche Belastung durch das Aufrufen von Funktionen eingespart werden kann.
Wenn mehrere Elemente gleichzeitig gepusht werden, ist die Verwendung von array_push effizienter, da nicht wiederholt der Zeiger auf das Ende der Datei abgerufen werden muss.


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage