Halihallo Christoph
Ganze Datei wird in Array gelesen. Array ist ein Speicherbereich.
Also: ganze Datei liegt im Speicher.
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ß?
Es sind IMHO nicht mehr Zugriffe nötig. Der Zugriff geht über PerlIO, dann zu libc und
dann auf die Systemroutinen. Letztere und zweitletztere cachen die Daten, nicht zuletzt,
weil der atomare Zugriff gleich ca. 1024 Bytes auf's mal einliest. Ob nun alle
1024-Byte chunks sequentiell ohne grosse Verzögerung eingelesen werden oder eben mit
etwas Verzögerung spielt in den _meisten_ Fällen keine Rolle.
Zugegeben, in einer Multitakting Umgebung konkurrieren die Zugriffe und der Lesekopf
müsste dann von einem Sektor zum gegenüberliegenden gejagt werden (was bei einem
"gleich alles auf einen Zug"-einlesen etwas unwahr).
Aber das nunmal Hauptargument dagegen und das meiner Meinung nach ausschlaggebende:
Sind 100MB weniger RAM nicht schlimmer, als einige missratene Lesekopfpositionen??
Als Antwort auf diese rhetorische Frage: Meiner Meinung nach in den meisten Fällen schon,
besonders in Systemen, die unter grosser Last stehen und nicht im Single User Modus
betrieben werden (sprich: die meisten Server im Internet :-)).
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.