Data
コードの実行時に何千ものインスタンス (オブジェクト)を持つクラス (C++) を呼び出します。DataWidget
オブジェクトの属性を表示するウィジェット(Qt)があります。ウィジェットを迅速に作成するために、オブジェクト属性をファイルに書き込んで、ウィジェットにそのファイルの属性を解析させました。このアプローチは機能しますが、スケーラブルでもきれいでもありません。
より明確にするために、私の要件は次のとおりです
。1 -DataWidget
複数の異なるData
オブジェクトの属性を一度に表示できる必要があります
2 - 1 秒あたりDataWidget
数千のData
オブジェクトを表示できる必要があります
3 -新しいオブジェクトDataWidget
を生成するコードと一緒に実行する必要があります4 - 各オブジェクトは、ファイル/データベースに永続的に保存する必要がありますData
Data
現在、GUI が作成され、DataWidget
が作成された後、実験が実行され、何千ものData
オブジェクトが生成されます (それらの一部を定期的にファイルに書き込みます)。実験の実行後、DataWidget
最後Data
にファイルに書き込まれたオブジェクトが表示されます (それらは XML ファイルに書き込まれます)。
現在のファイル アプローチでは、実験の実行後に複数のファイルを取得することで(1)を満たすことができます。実験は に関連付けられていないため、同時実行性がないため、新しいファイルが存在することを に通知するシグナルを追加するまで(3)DataWidget
は実行できません。DataWidget
私は 2 つの理由でこのアプローチを進めていません。まず、ファイルがすぐにディスクに書き込まれなくても、キャッシュ システムを実装しない限り、この方法がスケーラブルであるとは想像できません。車輪の再発明ですか?次に、Data
グラフ データ構造のラッパーであり、Graphml を使用して (Boost グラフ ライブラリ、つまりwrite_graphml()を介して) 構造を XML ファイルに書き込み、Boost のread_graphml()で構造を読み戻す必要があります。ファイルをオブジェクトに読み込みData
ます...つまり、プログラムの実験部分がオブジェクトを XML にエンコードし、XML をファイルに書き込みます (ただし、できればディスクではなくメモリに書き込みます)。DataWidget
ファイルから XML を読み取り、それをオブジェクトにデコードします。
すべてのキャッシングなどを処理するデータベースを使用する必要があるように思えます。さらに、ファイル/データベースのステップをスキップして、プログラム内の に渡すことができるように思われますData
(DataWidget
おそらくへの参照を渡します)。のリストData
)。それでも、Data
ファイル/データベースへの保存手順は完全に無意味ではありません。間違ったタイミングで間違った方法で使用しているだけです。
私の要件を考えると、より良いアプローチは何ですか?
このようなデータを処理および表示するための一般的なリソースやガイドラインはありますか?