Andres Freund: Inhalt von Datei auslesen

Beitrag lesen

Hi,

Jaja, das ist mir schon klar. Ich hätte deutlicher nachfragen sollen: Welchen Unterschied macht es, ob ich die "ganze Seite" auf einen Rutsch in den Speicher stopfe oder ob ich sie halt "Zeile für Zeile" in einzelnen Häppchen reinschiebe und dafür häufiger zugreifen muß?

Machen wir es jetzt mal ein wenig übertrieben, um es deutlicher zu machen. Sagen wir, du hast eine/mehrere Textdateien mit einer Größe 100 MB (z.B. bei der Selfsuche). Diese musst du nun bei jedem Aufruf des Scriptes, egal ob lokal oder übers Netz, ganz durchsuchen.
Wenn wir jetzt die Datei ganz in ein Array laden kann erstens erst mit der Verarbeitung angefangen werden, wenn die Datei ganz eingelesen ist, zweitens haben wir dann mehr als 100MB Arbeitsspeicher belegt. Dass ist nicht wirklich effektiv. Daher ist es besser nur einen Teil, zum Beispiel eine Linie, das kann aber auch eine bestimmte Anzahl an Bytes sein, einzulesen, und zu verarbeiten. Auf diese Weise braucht man wesentlich weniger Arbeitsspeicher. Das Script wird dadurch, bei den Geschwindigkeiten von aktuellen Festplatten oder noch besser Festplattenverbänden, nicht langsamer.

Grüße Andres Freund

--
ss:) zu:) ls:} fo:) de:] va:) ch:| n4:& rl:° br:^ js:( ie:% fl:( mo:|