Mailinglisten-Archive |
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