maximale Größe eines xml files für XMLDocument.Load(...)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Mandy.

    maximale Größe eines xml files für XMLDocument.Load(...)

    Hallo,

    ich bin auf der Suche nach einem Hinweis auf die maximale Größe von XML files.

    Bisher konnt ich nichts dazu finden.
    Es geht um eine Schnittstelle zwischen einem ERP System, das XML Files exportiert und importiert,
    diese sollten konvertiert und als CSV mit einem WebShop ausgetauscht werden.

    Im schlimmsten Fall könnten das 30-50 MB pro XML file werden.

    1. Frage:
    Hat jemand Erfahrungen mit so großen Files?
    Ist XPath da noch sinnvoll verwendbar, oder ist der Server mal 5 Minuten ausgelastet?

    2. Frage:
    Wenn ich aus so einem großen XMLDocument einen XMLNode herausnehme,
    oder eine Schleife mit For Each bilde - bekomme ich Referenzen auf das XMLDocument,
    oder werden die Daten kopiert?
    Also brauche ich viel mehr Speicher bei der Bearbeitung, als das file selber benötigt?

    Vielen Dank
    Mandy
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup:
    Für sehr viele Projekte verwende ich XML-Files für die Datenhaltung. Häufig habe ich dabei Dateigrössen von 100-200 MB zu verwenden. Das sind in Verbindung mit Datasets überhaupt keine Nebenwirkungen oder Einschränkungen aufgetreten. Wenn Du die Daten in den Speicher lädst, wird mehr Platz benötigt, aber selbst in einer 8GB-RAM MAcshine mit geladener VS-Entwicklungsumgebung gibt es keine Probleme.
    Merklich ist jedoch die Ladezeit des XML-Files.
    Über max. dateigrössen habe ich mir bisher keine Gedanken gemacht. Das hängt wohl eher mit dem verwendeten Dateisystem zusammen.
    Bei FAT32 sind dies 4GigaByte, bei NTFS theoretische 16 ExaByte

    Mandy schrieb:

    Wenn ich aus so einem großen XMLDocument einen XMLNode herausnehme,
    oder eine Schleife mit For Each bilde - bekomme ich Referenzen auf das XMLDocument,
    oder werden die Daten kopiert?
    Na klar wird die Datei dann in den RAM geladen. Im Arbeitsspeicher hast du dann eine Referenz auf das Dokument. Bzw um genauer zu sein auf das XmlDocument-Objekt.

    Aber wie @us4711 sagt:
    Das hängt wohl eher mit dem verwendeten Dateisystem zusammen
    und der verwendeten Bit-Version des Betriebssystems (32 Bit oder 64 Bit)
    stackoverflow.com/a/132345/6635287
    stackoverflow.com/a/5049183/6635287

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Radinator“ ()

    Vielen Dank für die vielen Rückmeldungen.

    @us4711:
    Das Laden dauert einfach seine Zeit, das ist mir klar, mir ging es eher um die weitere Verarbeitung.
    Und da finde ich deine Erfahrungswerte sehr beruhigend :)

    @Radinator:
    Sorry, da hast du mich falsch verstanden.
    Ich meinte das XMLDocument als Objekt bereits im Speicher - belegt z.B. 100MB RAM
    Werden dann, wenn ich per XPath daraus einzelne Nodes und Nodelists suche,
    die Daten dieser Nodes kopiert, oder nur auf die Daten im XMLDocument referenziert.

    Da melde ich mich nochmals, das kann ich ja einfach mal testen.

    Schöne Grüße
    Mandy
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup: