Aktueller Standort: Startseite> Neueste Artikel> Wie kann ich mit Stream_Set_Write_Buffer Cache -Schreib -Cache ändern? PHP -Probe Erläuterung

Wie kann ich mit Stream_Set_Write_Buffer Cache -Schreib -Cache ändern? PHP -Probe Erläuterung

gitbox 2025-08-14

In PHP ist stream_set_write_buffer eine sehr nützliche Funktion, mit der Sie die Größe des Schreibcache für eine geöffnete Datei oder eine Netzwerkverbindung festlegen können. Durch die Verwendung dieser Funktion können Sie die Schreibleistung optimieren, insbesondere wenn häufig große Mengen an Daten schreiben, z. B. die Behandlung großer Dateien, Netzwerkanforderungen usw.

Was ist stream_set_write_buffer ?

stream_set_write_buffer ist eine Stream -Betriebsfunktion in PHP, die die Schreibpuffergröße des Streams festlegt. Streams sind im Wesentlichen Dateien oder Netzwerkverbindungen in PHP, und Daten können über Streams gelesen und geschrieben werden. Mit dieser Funktion können Sie eine Puffergröße angeben. Beim Schreiben von Daten schreibt PHP zuerst die Daten in den Puffer und schreibt sie dann per Block an das tatsächliche Ziel (z. B. eine Datei oder Netzwerkverbindung).

Grammatik

 <span><span><span class="hljs-title function_ invoke__">stream_set_write_buffer</span></span><span>(resource </span><span><span class="hljs-variable">$stream</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$buffer</span></span><span>);
</span></span>

Parameter:

  • $ stream : Gibt eine offene Stream -Ressource an, die ein Dateistrom, einen Socket -Stream usw. sein kann.

  • $ puffer : Gibt die Größe des Puffer in Bytes an. Wenn der Puffer auf 0 gesetzt ist, ist der Puffer deaktiviert und die Daten werden direkt in den Zielstrom geschrieben.

Rückgabewert:

Rückgabe des booleschen Wertes True bedeutet Erfolg, und falsch bedeutet Misserfolg.

Warum den Schreibpuffer anpassen?

In einigen Szenarien kann die Standardpuffergröße von PHP die Leistungsanforderungen möglicherweise nicht entsprechen, insbesondere wenn es sich um große Datenmengen handelt. Durch ordnungsgemäßes Einstellen der Puffergröße können Sie die Anzahl der Schreibvorgänge reduzieren und den E/A -Vorgänger reduzieren, wodurch die Leistung verbessert wird.

Wenn Sie beispielsweise eine große Datenmenge in eine Datei schreiben und für jedes Schreiben Festplatten -E/A -Vorgänge erfordert, kann dies zu Engpässen führen. Durch Erhöhen der Puffergröße speichert PHP Daten vorübergehend im Speicher und verringert die Anzahl der Festplattenvorgänge und erhöht damit die Schreibgeschwindigkeit.

Beispiel: Verwenden Sie Stream_Set_Write_Buffer , um den Cache der Größe des Cache zu ändern

Hier ist ein einfaches PHP -Beispiel, das zeigt, wie Sie Stream_Set_Write_Buffer verwenden, um die Größe des Schreibcache festzulegen.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Öffnen Sie eine Datei zum Schreiben</span></span><span>
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'large_file.txt'</span></span><span>, </span><span><span class="hljs-string">'w'</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$file</span></span><span>) {
    </span><span><span class="hljs-comment">// Stellen Sie die Schreibcache -Größe auf 1MB</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">stream_set_write_buffer</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">1024</span></span><span> * </span><span><span class="hljs-number">1024</span></span><span>);

    </span><span><span class="hljs-comment">// Schreiben Sie eine große Datenmenge</span></span><span>
    </span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> &lt; </span><span><span class="hljs-number">10000</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
        </span><span><span class="hljs-title function_ invoke__">fwrite</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-string">"This is line number <span class="hljs-subst">$i</span></span></span><span>\n");
    }

    </span><span><span class="hljs-comment">// Schließen Sie den Dateistrom</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Data written successfully!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Unable to open file!"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

In diesem Beispiel öffnen wir eine Datei large_file.txt für einen Schreibvorgang und setzen die Schreibpuffergröße auf 1 MB (d. H. 1024 * 1024 Bytes). Durch die Einstellung dieser Weise speichert PHP die Daten zunächst im Speicherpuffer beim Schreiben von Daten und reduziert die Anzahl der Scheibenschreiber und verbessert damit die Leistung.

Dinge zu beachten

  1. Mäßig anpassen der Puffergröße : Obwohl die Erhöhung der Puffergröße die Schreibeffizienz verbessern kann, kann eine übermäßige Pufferung zu übermäßigem Speicherverbrauch führen, insbesondere in Umgebungen mit kleinerem Speicher. Es muss gemäß den tatsächlichen Bedingungen angepasst werden.

  2. Schließen Sie Puffer : Wenn $ Buffer auf 0 gesetzt ist, deaktiviert PHP Write Cache. Dieser Vorgang schreibt direkt Daten in den Zielstrom, erhöht jedoch den E/A -Betrieb pro Schreiben und eignet sich für einige Szenarien, in denen die Leistungsanforderungen nicht hoch sind.

  3. Arbeiten Sie mit Read Cache : Wenn Sie gleichzeitig die Leseleistung optimieren müssen, können Sie Stream_Set_Read_Buffer verwenden, um die Größe des Lesepuffers anzupassen, um bessere Leistungsoptimierungsergebnisse zu erzielen.

abschließend

stream_set_write_buffer ist eine leistungsstarke Stream -Betriebsfunktion in PHP. Durch die angemessene Festlegung der Größe des Schreibcache kann die Leistung des Schreibens von Dateien oder des Netzwerkstroms effektiv verbessert werden. Bei der Verarbeitung großer Datenmengen ist die Optimierung der Schreibpuffergröße eines der wichtigsten Mittel zur Verbesserung der Anwendungsleistung. Passen Sie bei der Verwendung die entsprechende Puffergröße gemäß den spezifischen Szenarioanforderungen an, um die beste Leistungsbilanz zu erreichen.