2013-05-25 12 views
6

boost :: property_tree :: ptreeには膨大なメモリオーバーヘッドがあります。私の見積もりは、空のptreeは約150バイトであり、ptreeに置かれたエントリは少なくとも150バイト追加されます。これにより、何千ものエントリを含むツリーに対しては使用できなくなります。boost :: property_tree :: ptreeのメモリオーバーヘッドは何ですか?

私の評価はオフですか?オーバーヘッドを低く抑える方法はありますか?

答えて

1

Boost.PropertyTreeは基本的に速いまたは軽量パーサではありません。
高層の便利さと機能を提供することに重点を置いているため、効率的に構築されているわけではありません。

同様の質問のためにブーストメーリングリストでthis threadを見ることができます。

私はBoost.PropertyTreeの選択肢はどちらかであるかもしれないことをお勧めしたい:

  • SAXパーサ - これは、XML構文解析のための別のアプローチです。これはDOMパーサーとは逆です。 XMLノードを1つずつ解析します。通常、「開始時のファイル全体のメモリ割り当て」はDOMパーサーで行われますが、SAXパーサーでは発生しません。
  • アロケータカスタマイズ可能パーサー +ユーザ定義メモリプール - 安定したメモリプールを指すようにパーサのアロケータを設定できます。それは単に事前に割り当てられたメモリ、断片化対応のプール、さらにはメモリマップされたファイルなどの大きなバッファである可能性があります。
関連する問題