0

私のアプリケーションは、次の要件を持つXMLのような階層情報を大量に保存する必要があります。

  1. 読みやすい
  2. 最小限のメモリ消費
  3. 単なるテキストではなく、入力されたデータ

これらの目標を達成するバイナリ形式の提案はありますか?

4

6 に答える 6

1

他のアプリケーションは保存されたデータを読み取る必要がありますか、それともあなただけのデータを読み取る必要がありますか?「標準」フォーマットである必要がありますか?

Fast Infosetは、要件(1)および(2)を満たしていますが、XML情報モデルの単なるバイナリ表現であるため、XMLと同じように型指定されていません。ただし、他に何もなければ、目的には十分かもしれません。

于 2009-09-06T20:58:52.923 に答える
1

要件の詳細が少なすぎて、適切な提案を行うことができません。たとえば、ストレージメディアを自由に選択できますか?それはファイルシステム、データベース、または他の何かでしょうか?

「最小メモリ消費量」とはどういう意味ですか?制約のあるプラットフォームで実行していますか?他のアプリケーションとリソースを共有する必要がありますか?コンピュータに4GBのメモリがある場合、1GBのフットプリントは十分に小さいですか?データはメモリに保存されますか、それとも作業中の部分のみに保存されますか?

プラットフォームがJavaの場合、標準のシリアル化から始めて、パフォーマンスに満足できない場合はカスタムのシリアル化を調査します。

于 2009-09-06T21:14:04.470 に答える
1

xmlがフォーマット要件であるかどうかを指定せず、xmlのように階層化する必要があるとだけ言っています。

データの種類に関する詳細がなければ、アドバイスを提供することは困難です。ここに小さなリストがあります。

  • b-trees 複数の言語で b-tree ストレージ形式をサポートする多数のライブラリがあります。ルックアップが高速で、本質的に階層的です。
  • Google のプロトコル バッファ。有線での送信に最適化されたコンパクトなストレージ。ただし、ストレージ形式として必ずしも最適化されているわけではありません。ただし、それらは型付けされており、おそらくストレージ形式としてはかなりうまく機能します。
  • 圧縮されたテキスト形式。コンパクトで、選択した形式に応じて、型付けされ、本質的に階層化されます。
    • YAML (いくつかの複雑な型付け、階層型、人間が読める形式のサポート)
    • JSON (タイピングのサポートが少なく、解析が高速で、階層的で、人間が判読できる)
于 2009-09-07T00:52:45.650 に答える
1

この問題に関するウィキペディアの説明: http://en.wikipedia.org/wiki/Binary_XML

おそらく、推奨される組織とその Java および .net SDK は、 http ://www.agiledelta.com/product_efx.html からダウンロードできます 。

xml は純粋なテキストですが、シリアル化されたオブジェクトを表すために使用できます。シリアライザーがオブジェクトを xml にシリアライズしていると仮定しましょう。

エンディアン ( http://en.wikipedia.org/wiki/Endian ) とデータ表現の問題に取り組む必要があるため、オブジェクトをバイナリ ストリームに変換しようとしないでください。ただし、データ アーキテクチャの中立性を確保するために、どうしても XDR ( http://en.wikipedia.org/wiki/External_Data_Representation ) を使用する必要があります。

それ以外の場合は、標準のシリアライザーを使用してオブジェクトを XML にシリアル化し、ライブラリと SDK が利用できるため、xml をバイナリ/コンパクト xml に変換する必要があります。次に、バイナリ xml から圧縮解除して逆シリアル化します。

于 2009-09-07T01:25:35.797 に答える
1

形式について議論できる場合は、XML ではなく JSON をお勧めします。実際、JSON は標準の XML よりも読み込みと書き込みが高速です。

JSON の詳細:

http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=060ca7c3-b03f-41aa-937b-c8cba5b7f986 http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=39842a17-781a-45c8 -ade5-58286909226b

于 2009-09-06T21:17:10.790 に答える
1

XML をオブジェクト グラフに読み込んで、Google プロトコル バッファとして保存することもできます。これらは非常に効率的になるように設計されています。

于 2009-09-06T21:20:05.750 に答える