phpbar.de logo

Mailinglisten-Archive

[php] Performance von Filehandles

[php] Performance von Filehandles

Mathias Gloß (www.gmail.com) mgloss at gmail.com
Don Dez 1 13:46:14 CET 2005


Aloha,

2005/12/1, Eric Binek <ich at ericbinek.de>:

> ist es möglich die Performance von z.B.
> $fh = fopen('file.txt', 'a');
> {schleife}
> fwrite($fh, $content);
> {schleife}
> fclose($fh);
>
> zu beschleunigen?
>
> Oder vieleicht ne Alternative?
> Am Ende kommt ne recht große Datenmenge zusammen >2 Gig.
> system('echo "blahblah" > /path/file');
> probiert...das Ergebniss war net berauschend.

Du vergleichst Äpfel mit Birnen ,-)

Die erste Lösung hat 2 Vorteile:
a) muss kein neuer Prozess erzeugt werden,
b) wird in der Schleife immer nur $content an die Datei angehängt
   und nicht der komplette Inhalt auf einen Schlag geschrieben.

Wenn du mit der 2. Lösung auf einen Schlag 2 GB Daten schreiben
willst, dann brauchst du dafür mindestens 4 GB Hauptspeicher. Dazu
kommt noch, daß  bei system/exec/.... immer ein neuer Prozeß erzeugt
wird, was einen enormen overhead produziert.
Nicht umsonst versucht man ja möglichst php mit dem Apachen zusammen
zu laden und vermeidet die CGI-Version, wo bei jedem Zugriff auf ein php-
Script der php-Interpreter neu geladen wird.

Grüße, Mathias

php::bar PHP Wiki   -   Listenarchive