Ich habe vor Jahren eine .NET-Anwendung erstellt, ohne zu viel über das Dateiformat nachzudenken: Es benutzt einen Soap-Formatierer, um unsere große Hierarchie von Objekten zu serialisieren. Es war sehr einfach zu machen, und deshalb dachte ich nicht viel darüber nach.Wie wähle ich ein Dateiformat?
Ich versuche jetzt, ein optimales Dateiformat unter Berücksichtigung des folgenden Problems zu finden: Wenn eine Datei gespeichert wird, wird sie letztendlich in ein Byte-Array konvertiert und über das Kabel an eine Datenbank zum Speichern gesendet. Dies ist ein großes Problem, da Sie alle Ihre Objekte im Speicher haben, dann mehr Speicher für den Serializer zuweisen und dann noch mehr Speicher für das Byte-Array zuweisen. Sogar Objektgraphen mit einer bescheidenen Größe verbrauchen viel Speicherplatz, um die Datei zu speichern.
Ich bin mir nicht sicher, wie dies zu verbessern, sowohl aus Sicht Dateiformat, sondern auch potenziell aus der Sicht des Algorithmus (Objekte -> Strom -> Byte-Array)
UPDATE: Ich würde Ich habe das Byte-Array immer gezippt, bevor ich es über die Leitung gesendet habe. Obwohl das ein guter Rat ist, wurde es bereits in meiner Anwendung implementiert.
Ich habe von Soap zu binärer Serialisierung konvertiert, und das hat einen großen Unterschied gemacht: Unsere Dateien sind etwa 7x kleiner als zuvor. (Ihre Laufleistung kann natürlich variieren).