Frage

Warum verwenden alle Binärdateien, wenn alle XML verwenden kann?

War es hilfreich?

Lösung

Aufgrund der Leistung, natürlich, dann ist XML gut, wenn man eine Baumstruktur definieren , aber nicht alle Arten von Daten passen damit gut. Möchten Sie ein 3D-Modell in einer XML-Datei speichern? Oder ein Bild?

XML ist gut zu handhaben Textdaten, was effektiv Binärdaten wie Bilder, Töne, komprimierte Dateien, was auch immer ..

Es ist wirklich ausführlich und schwer analysiert werden und Sie nicht wollen, es zu benutzen, wenn die Leistung Angelegenheiten (man denke über die netcode eines Spiels zum Beispiel).

Ich würde mich erschießen, wenn ich eine XML-Datei enthält, zum Beispiel Strukturen für Vektoren oder Punkte lesen.

Mit einem Parser statt, dass mit etwas Inhalt in dem Speicher Dumping wie:

fread(&myBuf, sizeof(vector_struct), 10, in);

würde mich dumm fühlen ..

Andere Tipps

Haben Sie gesehen XML? Es scheint ein heimtückisches Schema von Hardware-Hersteller zu sein, zu verkaufen, größere Festplatten: -)

Allerdings Humor beiseite, ich wählen würde, binäre Dateien, wenn verwenden:

  • Ich war auch nicht besorgt über die zur Verfügung stehenden Informationen außerhalb Systeme machen, oder portable auf andere Plattformen.
  • Ich wollte es lesen und schreiben in bei maximaler Geschwindigkeit (ohne Parsing zu haben / produzieren XML).
  • Ich habe nicht braucht es für Menschen lesbaren oder leicht umgewandelt.
  • Ich war auf einem System arbeiten, in dem XML keinen Sinn (Embedded C) oder in der XML-Verarbeitungsbibliotheken waren nicht ohne weiteres verfügbar.

In vielen Fällen XML wird eine gute Wahl sein, aber es gibt Situationen, in denen Sie ein binäres Format benötigen oder sollten es zumindest in Betracht ziehen:

  • Wenn Sie Random Access (und kann die Datei im Speicher nicht geladen werden - z Datenbanken)
  • Wenn die Dateigröße ist ein Anliegen (z Bilder, Filme)
  • Wenn die Daten binär in der Natur (z Bilder, Ton)
  • Wenn die Leistung ist ein Anliegen (alle oben)

Im Folgenden sind nicht gute Gründe für die Verwendung binär:

  • XML ist schwer zu Parse (es gibt ausgezeichnete XML-Bibliotheken für fast jede Sprache verfügbar)
  • Binary verhindert, dass der Benutzer vor Manipulationen (es nicht)

Lesen Sie dieses: Joel on Software: Zurück zu den Wurzeln . Ja, es ist viel Text. Ja, es scheint nicht zu Ihrer Frage beziehen sich aber nicht, dies auf Ihre Frage keine schlechte Antwort ist -. Wenn ich Joel wäre, würde ich zitiere nur, dass ganze Post hier und eine Unmenge von rep Anspruch für sie

Hier ist ein sehr leuchtendes Beispiel: Binäre Formate sind immer ausgerichtete , all x..x + y Bits repräsentiert eine Gruppe von Daten. Der Umzug in andere Gruppe ist genauso einfach wie das ursprüngliche Startpunkt und den Index der Gruppe bekommen und multiplizieren Sie die beiden Werte mit, dass (x * n .. (x + y) * n), um alle Daten zu dieser Gruppe im Zusammenhang zu bekommen. Wie Sie das tun, genau, tun dies mit XML?

Holen Sie das Beste aus beiden Welten. Verwenden XSD mit einem Werkzeug Bindung, die serialisiert / deserialisiert sowohl binäre und XML -. Wie www.codesynthesis.com XSD

XML ist eine Hölle zu analysieren. Als ein Format, das einfach für die Menschen zu schreiben ist und für Programme, es ist tatsächlich eine der Schlechten zu lesen.

Binärdateien auch den Vorteil haben, dass Sie viel von Parsen überspringen und nur einige Teile der Datei als Direktspeicher Dumps behandeln (wenn Sie so geneigt-Sie sollten so sorgfältig tun, obwohl).

Nicht jede Art von Daten in XML dargestellt werden. Und es spart viel Platz zum Speichern von Werten in binär anstatt XML. Wenn die Daten werden durch einen XML-Parser analysiert werden, dann sollte es in XML gespeichert werden, sonst, warum den Raum verschwenden.

Da Parsen von XML:

  • nimmt Zeit
  • Benötigt eine Menge Berechnungen

So, binäre Dateien verwendet, ist besser für Performance.


Und auch:

  • XML ist eine ziemlich ausführliche Format: Man denke an alle diese Tags - die die Datei so viel größer machen
  • .
  • repräsentiert Ihre Daten als Text ist nicht immer einfach / möglich
  • Kleiner -> besser zu übertragen.
  • Je nach Zugriffsmethode, schneller zu analysieren.
  • Weniger lesbar.

Und noch ein Bündel von Gründen. Fühlen Sie sich frei hinzuzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top