質問

私は「アプリケーション仮想化」製品を構築しています。XMLファイルを仮想レジストリとして使用します。 マイソフトウェアから生成された仮想アプリケーションは、仮想レジストリXMLにアクセスします。 それは実行されますが、非常に遅く実行されます。

親からスレッドが同じレジストリファイルにスレッドが接続されているため、すべてのレジストリAPI呼び出しでXMLをロードしてアンロードします。これにより、アプリケーションが遅くなる可能性があります。

XMLの代替案を教えてください...

役に立ちましたか?

解決 3

木の変換時間へのテキスト。 私はすべてのプロセスでXMLをロードして解析することによって私のコードでこれを管理しました。

他のヒント

代わりにデータベースを使用できます。それは速くなります。SQLiteは軽量で強力です。

メモリにロードしてそこからそれを操作したら、問題はXMLではありません。 あなたのアプリケーションをプロフィールして、それがその時間のほとんどを費やしている場所を見つけるためにあなたのアプリケーションをプロフィールしてください。 アクセスしたいアイテムを検索する時間のほとんどの時間を過ごすことがおそらくおそらく見つかると思います。

まあ、あなたは常にスレッドセーフで速い実際のレジストリを使うことができます...

それ以外の場合は、XML構造体をメモリに保持しているように、仮想XMLレジストリを管理する別のプロセスを作成する必要があります。次に、アクセスする必要があるプロセスは、IPCを使用してレジストリプロセスと通信できます。

複数のプロセスが常にレジストリを更新する可能性が低い場合、仮想XMLレジストリをメモリ内に保持し、変更時にディスクに書き込みますが、バックグラウンドスレッドを介して非同期的に書き込みます。レジストリにアクセスするときは、まずファイルが変更されたかどうかを確認してください。そうでない場合は、リロードする必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top