Hallo Martin,
nein, so eine Faustformel gibt es nicht. Als erste Mutmaßung kann man aber davon ausgehen, dass der Speicherbedarf ungefähr gleich der Dateigröße ist. Ungefähr, weil immer auch noch etwas Overhead dazukommt - etwa für programmeigene Variablen.
Nur wenn das Programm die Daten beim Lesen umcodiert, ändert sich der Speicherbedarf eventuell deutlich. So könnte ein Texteditor beispielsweise so geschrieben sein, dass er intern jedes Zeichen mit 16bit (2 Byte) codiert, während die meisten Textdateien entweder konstant 1 Byte pro Zeichen speichern (z.B. ASCII, oder die ISO-8859-Codierungen), oder je nach Zeichen unterschiedlich viel. UTF-8 belegt beispielsweise je nach Zeichencode ein bis vier Byte für ein Zeichen. Für die Verarbeitung kann es günstig sein, diese Codierung speicherintern umzuschlüsseln.
ah, verstehe
Für mich von praktischem Interesse war es, wie sich eine XML-Datei, deren DOM-Baum ich mit einer entsprechenden Funktion lade(z.b. PHPs simple-xml oder einer Python-Entsprechung), im RAM hinsichtlich des verbrauchten Speichers desselben verhält.
Aufgepasst. Beim Parsen von XML braucht man vor allem Speicherplatz, um den DOM-Baum aufzubauen und abzubilden. Die XML-Datei selbst könnte man sequentiell lesen, so dass man für die "Rohdaten" nicht mehr als ein paar kB als Pufferspeicher braucht - aber das vollständige Lesen in einem Rutsch ist programmtechnisch viel einfacher zu realisieren.
Dann ist also sequentielles Lesen von Vorteil?
Wieviel Speicher für den DOM-Baum gebraucht wird, hängt von vielen Faktoren ab, etwa die Anzahl der Knoten und Attribute, die Länge der Element- und Attributbezeichner, und natürlich auch hier wieder die Effizienz des Programms, d.h. wie "verschwenderisch" es mit dem verfügbaren Speicher umgeht.
So könnte man abschätzen, wie groß die Datei auf der Platte sein dürfte, um sie noch zu öffnen, ohne den verfügbaren Speicher zu überschreiten.
Sehr gewagt. Beim XML-Parsen würde ich als erste Orientierung annehmen, dass der Speicherbedarf mindestens doppelt so groß ist wie die Dateigröße der XML-Datei.
Alles klar. Vielleicht mach ich einfach mal ein paar Tests und sehe mir dann den Speicherbedarf an.
Danke!