Heim >Backend-Entwicklung >PHP-Problem >Gehen PHP-Arrays nicht durch den Speicher?

Gehen PHP-Arrays nicht durch den Speicher?

(*-*)浩
(*-*)浩Original
2019-09-28 16:23:221944Durchsuche

Im Allgemeinen beträgt die Speicherauslastung von PHP-Arrays nur 1/10. Das heißt, ein Array mit 100 MB Speicher in der Sprache C erfordert 1 GB in PHP.

Gehen PHP-Arrays nicht durch den Speicher?

Gerade in Systemen, in denen PHP als Backend-Server verwendet wird, tritt häufig das Problem eines übermäßigen Speicherverbrauchs auf.

Da es sich um ein Sprachproblem handelt, sind herkömmliche Lösungen schwer zu lösen. Das Folgende ist eine Lösung durch String. (Empfohlenes Lernen: PHP-Video-Tutorial)

$total = 100000;
$double = "";
for ($i = 0; $i < $total; $i++)
{
    $double .= pack("d", $i + 0.1);
}

for ($i = 0; $i < $total; $i++)
{
    unpack("@" . ($i * 8) . "/d", $double);
}

In diesem Beispiel wird ein String verwendet, um ein Array von Doubles zu speichern. Packen Sie es dann aus, wenn Sie es verwenden.

Natürlich wirkt sich dies auf die Leistung aus. Es kommt auf die konkreten Bedürfnisse an.

Zum Beispiel in diesem Fall:

Sie haben 10 Arrays, jedes Array ist 10 MB groß (ca. 1 Million Daten), dann kosten zehn 100 MB Speicher.

Wenn Sie 10 Personen gleichzeitig hinzufügen, wird der Speicher ernsthaft unzureichend sein.

Dann werden die 10 Arrays nicht jedes Mal gleichzeitig verwendet. Sie können sie als Zeichenfolge

speichern und dann bei Verwendung eine bestimmte Zeichenfolge in ein Array entpacken.

Das obige ist der detaillierte Inhalt vonGehen PHP-Arrays nicht durch den Speicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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