C/C++ コードの分析中に収集したデータを格納するために使用するテクノロジを評価しています。C++ の場合、データ量は比較的大きくなる可能性があり、TU あたり最大 20Mb です。
次のSOの回答を読んだ後、 HDF5が使用に適したテクノロジーである可能性があると考えました。ここにいる人々が、私が持っているいくつかの最初の質問に答えるのを手伝ってくれるかどうか疑問に思っていました:
パフォーマンス。データの一般的な使用法は、コンパイラによって生成された「.o」ファイルの有効期間と同様に、1 回の書き込みと「数回」の読み取りです。HDF5 は、SQLite DB などを使用する場合と比べてどうですか? それは合理的な比較でさえありますか?
時間の経過とともに、保存している情報を追加しますが、新しい形式をサポートするために、完全に新しい "リーダー" のセットを再配布する必要はありません。ユーザー ガイドを読んだ後、HDF5 は XML や DB に似ていることを理解しました。つまり、情報はタグ/列に関連付けられているため、古い構造を読み取るために作成されたツールは、関係のないフィールドを無視します。これについての私の理解は正しいですか?
書き出したい情報のかなりの部分は、ツリー型の構造 (スコープ階層、型階層など) になります。理想的には、親、子などを持つスコープをモデル化します。1 つの HDF5 オブジェクト「ポイント」を持つことは可能ですか?別の?そうでない場合、HDF5 を使用してこの問題を解決する標準的な手法はありますか? それとも、DB で必要とされるように、データを検索するときに適切なルックアップを使用して、あるオブジェクトを別のオブジェクトに「リンク」する一意のキーが必要ですか?
どうもありがとう!