PHP unset zerstört Variablen und gibt Speicher frei
Die unset()-Funktion von PHP wird zum Löschen und Zerstören von Variablen verwendet. Wir können unset() verwenden, um nicht verwendete Variablen zu zerstören. Aber manchmal kann die Verwendung von unset() den von der Variablen belegten Speicher nicht zerstören! Schauen wir uns zunächst ein Beispiel an:
- $s=str_repeat('1',255); //Erzeuge einen String bestehend aus 255 Einsen
- $m=memory_get_usage(); //Den aktuell belegten Speicher abrufen
- unset($s);
- $mm=memory_get_usage(); //unset() und dann den aktuell belegten Speicher prüfen
- Echo$m-$mm;
- ?>
Geben Sie schließlich den vor unset() belegten Speicher abzüglich des nach unset() belegten Speichers aus. Wenn es sich um eine positive Zahl handelt, bedeutet dies, dass unset($s) $s aus dem Speicher zerstört hat (oder mit anderen Worten, den belegten Speicher). nachdem unset() reduziert wurde), aber unter PHP5 und Windows-Plattformen ist das Ergebnis, das ich erhalten habe: -48. Bedeutet das, dass unset($s) den von der Variablen $s belegten Speicher nicht zerstört? Nehmen wir das folgende Beispiel:
- $s=str_repeat('1',256); //Erzeuge einen String bestehend aus 256 Einsen
- $m=memory_get_usage(); //Den aktuell belegten Speicher abrufen
- unset($s);
- $mm=memory_get_usage(); //unset() und dann den aktuell belegten Speicher prüfen
- Echo$m-$mm;
- ?>
Dieses Beispiel ist fast das gleiche wie das obige Beispiel. Der einzige Unterschied besteht darin, dass $s aus 256 Einsen besteht, was eine Eins mehr ist als das erste Beispiel. Bedeutet das, dass unset($s) den von $s belegten Speicher zerstört hat?
Anhand der beiden oben genannten Beispiele können wir die folgenden Schlussfolgerungen ziehen: Schlussfolgerung 1. Die Funktion unset() kann den Speicherplatz nur dann freigeben, wenn der Variablenwert mehr als 256 Byte Speicher belegt Raum. .
Kann die Verwendung von „Unset“ Speicherplatz freigeben, solange der Variablenwert 256 überschreitet? Testen wir es mit einem anderen Beispiel:
- $s=str_repeat('1 ',256); //Das ist genau das Gleiche wie im zweiten Beispiel
- $p=&$s;
- $m=memory_get_usage();
- unset($s); //Destroy $s
- $mm=memory_get_usage();
- echo$p.'< br />';
- echo$m-$mm;
- ?>
Aktualisieren Sie die Seite. Wir sehen, dass die erste Zeile 256 Einsen enthält und die zweite Zeile -48. Es liegt auf der Hand, dass wir $s zerstört haben und $p nur eine Variable ist, die referenziert $s, das sein sollte Es gibt keinen Inhalt. Außerdem ist die Speichernutzung nach unset($s) im Vergleich zu vor unset() gestiegen! Machen wir nun das folgende Beispiel:
- $s=str_repeat('1' ,256); //Das ist genau das Gleiche wie im zweiten Beispiel
- $p=&$s;
- $m=memory_get_usage();
- $s=null //Setze $s auf null
- $mm=memory_get_usage();
- echo$p.'< br />';
- echo$m-$mm;
- ?>
Aktualisieren Sie nun die Seite. Wir sehen, dass die Ausgabe $p keinen Inhalt hat. Der Unterschied in der Speichernutzung vor und nach unset() beträgt 224, d. h. der von der Variablen belegte Speicher wurde gelöscht . $s=null kann in diesem Beispiel auch durch unset() ersetzt werden, wie folgt:
- $s= str_repeat ('1',256); //Das ist genau das Gleiche wie im zweiten Beispiel
- $p=&$s;
- $m=memory_get_usage();
- unset($s); //Destroy $s
- unset($p);
- $mm=memory_get_usage();
- echo $p.'
'; - echo$m-$mm;
- ?>
Wir zerstören sowohl $s als auch $p mit unset() und schauen uns dann den Unterschied in der Speichernutzung an 224 , was darauf hinweist, dass dadurch auch Speicher freigegeben werden kann. Dann können wir eine weitere Schlussfolgerung ziehen: Schlussfolgerung 2. Der Speicher wird nur freigegeben, wenn alle Variablen (z. B. Referenzvariablen), die auf die Variable verweisen, zerstört sind.
Ich glaube, dass nach den Beispielen in diesem Artikel jeder ein Verständnis von unset() haben sollte. Zumindest verwende ich unset(), um Speicher freizugeben, wenn die Variable dies nicht tut arbeiten.
Das Obige stellt PHP vor, das nicht zum Zerstören von Variablen und zum Freigeben von Speicher bestimmt ist, einschließlich des Inhalts. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die ersten LPCAMM2-Module für Laptops werden bereits ausgeliefert, künftig sollen auch Desktop-Mainboards mit CAMM2 ausgestattet werden. CAMM2 und LPCAMM2 sind nicht miteinander kompatibel und selbst auf Desktop-PCs müssen Kunden vorsichtig sein

Wenn Sie ein IT-Administrator oder Technologieexperte sind, müssen Sie sich der Bedeutung der Automatisierung bewusst sein. Insbesondere für Windows-Benutzer ist Microsoft PowerShell eines der besten Automatisierungstools. Microsoft bietet eine Vielzahl von Tools für Ihre Automatisierungsanforderungen, ohne dass Sie Anwendungen von Drittanbietern installieren müssen. In diesem Leitfaden erfahren Sie, wie Sie PowerShell zur Automatisierung von Aufgaben nutzen können. Was ist ein PowerShell-Skript? Wenn Sie Erfahrung mit PowerShell haben, haben Sie möglicherweise Befehle zum Konfigurieren Ihres Betriebssystems verwendet. Ein Skript ist eine Sammlung dieser Befehle in einer .ps1-Datei. .ps1-Dateien enthalten von PowerShell ausgeführte Skripte, z. B. grundlegende Get-Help

Im heutigen Zeitalter der rasanten technologischen Entwicklung schießen Programmiersprachen wie Pilze nach einem Regenschauer aus dem Boden. Eine der Sprachen, die viel Aufmerksamkeit erregt hat, ist die Go-Sprache, die von vielen Entwicklern wegen ihrer Einfachheit, Effizienz, Parallelitätssicherheit und anderen Funktionen geliebt wird. Die Go-Sprache ist für ihr starkes Ökosystem mit vielen hervorragenden Open-Source-Projekten bekannt. In diesem Artikel werden fünf ausgewählte Open-Source-Projekte für die Go-Sprache vorgestellt und der Leser soll die Welt der Open-Source-Projekte für die Go-Sprache erkunden. KubernetesKubernetes ist eine Open-Source-Container-Orchestrierungs-Engine für die Automatisierung

„Grundlagen der Go-Sprachentwicklung: 5 beliebte Framework-Empfehlungen“ Als schnelle und effiziente Programmiersprache wird die Go-Sprache von immer mehr Entwicklern bevorzugt. Um die Entwicklungseffizienz zu verbessern und die Codestruktur zu optimieren, entscheiden sich viele Entwickler für die Verwendung von Frameworks, um Anwendungen schnell zu erstellen. In der Welt der Go-Sprache stehen viele hervorragende Frameworks zur Auswahl. In diesem Artikel werden fünf beliebte Go-Sprach-Frameworks vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Frameworks besser zu verstehen und zu verwenden. 1.GinGin ist ein leichtes Web-Framework mit hoher Geschwindigkeit

1. Java ruft die Post-Schnittstelle auf. 1. Verwenden Sie URLConnection oder HttpURLConnection. Es ist nicht erforderlich, andere JAR-Pakete herunterzuladen. Rufen Sie URLConnection auf kann nur empfangen werden, wenn der Antwortcode korrekt ist, um publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt zurückzugeben

Das Win10-System ist ein ausgezeichnetes System, dessen Verwendung sich lohnt. Seine starke Kompatibilität und hohe Intelligenz können dafür sorgen, dass es bei der Verwendung des Win10-Systems grundsätzlich keine Probleme gibt. In letzter Zeit haben jedoch viele Freunde berichtet, dass ihre Computer häufig blaue Festplatten haben . Und es wird immer der Fehlercode angezeigt. Speicherverwaltung Was ist los? Heute bringt Ihnen der Editor die Lösung für den häufigen Bluescreen von Win10 und den Speicherverwaltungs-Beendigungscode. Wenn Sie ein Spiel benötigen, schauen Sie vorbei. Lösung für den blauen Bildschirm von win10memorymanagement: Lösung 1: 1. Verwenden Sie „Win-Taste + R“ + Eingabetaste „Strg + Eingabetaste“, um die Bedienoberfläche aufzurufen

Unter Linux ist der URL- oder Curl-Client ein beliebtes Befehlszeilenprogramm, mit dem Sie Daten über das Netzwerk mithilfe verschiedener Protokolle wie HTTPS, HTTP, FTP usw. übertragen können. Es ermöglicht Ihnen das Senden und Empfangen von Daten mithilfe der Get-, Post- und Request-Methoden. Unter anderem müssen Sie die Methode „get“ häufig verwenden. Daher ist es wichtig, verschiedene Methoden und Optionen zu erlernen, mit denen Sie Ihre Produktivität steigern können. „Das Ausführen einer Curl-Operation ist so einfach wie die Eingabe einiger einfacher Befehle. Obwohl es einfach erscheint, erkennen viele Benutzer sein Potenzial nicht vollständig. Daher bietet diese kurze Anleitung einige Informationen zum Ausführen von Curl-Operationen auf Linux-Systemen. Beispiel mit „ Curlget“-Befehl „Curl.

Mit der Entwicklung des Internets und der Weiterentwicklung der Informationstechnologie ist das Zeitalter von Big Data angebrochen, und auch Bereiche wie Datenanalyse und maschinelles Lernen sind weit verbreitet. In diesen Bereichen ist die Aufgabenplanung ein unvermeidliches Problem. Für die Verbesserung der Effizienz ist es von entscheidender Bedeutung, eine effiziente Aufgabenplanung zu erreichen. In diesem Artikel stellen wir vor, wie Sie das Web-Framework Echo-Framework von Golang verwenden, um eine verteilte Aufgabenplanung zu implementieren. 1. Einführung in das Echo-Framework Echo ist ein leistungsstarkes, skalierbares und leichtes GoWeb-Framework. Es basiert auf HTTP
