2011-12-22 28 views
2

2つのアプリケーションがデータを共有する必要があるシナリオを考えてみましょう。私は2つのアプリケーション間で共通のファイルに3つのways-アプリケーション間のデータ共有 - 共有メモリとD-Busとファイル操作

  1. 共有メモリ(私は使用させて頂くブースト)
  2. D-バス(許可のglib/Qtの実装)
  3. ファイル操作と考えることができます。

Q1。データを共有することを考えると私のアプローチであるはずのものは非常に大きくなるでしょう(たとえば、約10Kの曲名)。

Q2。ハードディスクが関与しているので、ファイル操作は速度に影響しますか?

Q3。より良いスピードで利用可能な他のアプローチがありますか?実装の

言語 - C++

答えて

2

あなたはデータベース、特にSQLiteのを使用するようにQtSqlモジュールを使用して検討する必要があります。

SQLiteデータベースは、クロスプラットフォームのインプロセスデータベースエンジンです。これにより、構造化されたデータを簡単に保存し、プロセス間で同時に安全にアクセスすることができます。プロセスは異なる言語で記述することもできます。

SQLiteは数百万のレコードでうまく動作し、非常に高速で信頼性が高いです。 主な問題は、プロセスが両方ともデータベースレベルのロックを使用するために書き込みを行うため、書き込み操作中に他のプロセスがデータベースに読み書きすることができないことです。

QtSqlを使用するもう1つの利点は、将来、PostgreSQLやMySQLなどのデータベースサーバーを使用して、ネットワーク上で簡単にプログラムを動作させることができることです。

+0

返信いただきありがとうございます。しかし、いくつかのプロジェクトの制約のために私はSQLiteを使用することはできません。誰かが上記のオプションから最良のアプローチを選ぶことができたら? –

関連する問題