Heim > Backend-Entwicklung > PHP-Tutorial > Array- und SplFixedArray-Vergleich (Codebeispiel)

Array- und SplFixedArray-Vergleich (Codebeispiel)

藏色散人
Freigeben: 2023-04-06 13:50:02
nach vorne
2725 Leute haben es durchsucht

Das Wesentliche von PHP ist die Verwendung von Arrays. Arrays können bei richtiger Verwendung in allen Datenstrukturen verwendet werden. Es gibt eine gute Sache namens SPL, die uns viele Datenstrukturen zur Verfügung stellt und deren Leistung viel besser ist als die, die wir mit Arrays erreichen können.

Werfen wir heute einen Blick auf SplFixedArray, wie der Name schon sagt, ein Array mit fester Größe. Geben Sie beim Instanziieren die Array-Größe an. Das Array kann während der Verwendung nicht erweitert oder verkleinert werden.

Wenn Sie also dynamische Operationen am Array ausführen, ist es möglicherweise nicht für die Verwendung geeignet, und der Index von SplFixedArray kann nur aus Zahlen bestehen und nicht als Schlüsselwertarray verwendet werden.

Das Folgende ist der Test der 100-W-Lese- und Schreibleistung und der Speichernutzung von Array und SplFixedArray

Code

<?php
define(&#39;TEST_COUNT&#39;, 1000000);
$memory = memory_get_usage();
$writeTime = microtime(true);
$arr = [];
for($i = 0; $i < TEST_COUNT; ++$i)
{
    $arr[] = $i;
}
$writeTime = microtime(true) - $writeTime;
 
$readTime = microtime(true);
for($i = 0; $i < TEST_COUNT; ++$i)
{
    $value = $arr[$i];
}
$readTime = microtime(true) - $readTime;
$memory = memory_get_usage() - $memory;
echo &#39;[Array]&#39;, PHP_EOL, &#39;Memory: &#39;, $memory, &#39; bytes&#39;, PHP_EOL, &#39;Write Time: &#39;, $writeTime, &#39;s&#39;, PHP_EOL, &#39;Read Time: &#39;, $readTime, &#39;s&#39;, PHP_EOL;
 
$memory = memory_get_usage();
$writeTime = microtime(true);
$splFixedArray = new SplFixedArray(TEST_COUNT);
for($i = 0; $i < TEST_COUNT; ++$i)
{
    $splFixedArray[$i] = $i;
}
$writeTime = microtime(true) - $writeTime;
 
$readTime = microtime(true);
for($i = 0; $i < TEST_COUNT; ++$i)
{
    $value = $splFixedArray[$i];
}
$readTime = microtime(true) - $readTime;
$memory = memory_get_usage() - $memory;
echo &#39;[SplFixedArray]&#39;, PHP_EOL, &#39;Memory: &#39;, $memory, &#39; bytes&#39;, PHP_EOL, &#39;Write Time: &#39;, $writeTime, &#39;s&#39;, PHP_EOL, &#39;Read Time: &#39;, $readTime, &#39;s&#39;, PHP_EOL;
Nach dem Login kopieren

Laufergebnisse

[Array]
Memory: 33558608 bytes
Write Time: 0.083034038543701s
Read Time: 0.022516965866089s
[SplFixedArray]
Memory: 16003208 bytes
Write Time: 0.037343978881836s
Read Time: 0.022947072982788s
Nach dem Login kopieren

Fazit

Speichernutzung: SplFixedArray kann mehr als die Hälfte des Speichers einsparen als Array

Schreibleistung: SplFixedArray ist schneller als Array

Leseleistung: 50/50, nach vielen Tests ist die Array-Lesegeschwindigkeit noch schneller

Wenn Sie feststellen können, dass Sie nur das Indexarray verwenden müssen, können Sie dies vorhersagen Anzahl der Mitglieder des Arrays. Es ist offensichtlich besser geeignet, SplFixedArray zu verwenden.

Das obige ist der detaillierte Inhalt vonArray- und SplFixedArray-Vergleich (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yurunsoft.com
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