2

いくつかのレガシー コードに取り組んでいるときに、主に (私が信じている) STL マップ (特に「maps-of-maps」) の広範な使用が原因で、メモリの問題に遭遇しています。

可能な解決策として Boost flat_map を検討しています。特に速度やメモリ使用量の改善に関して、flat_maps を直接経験した人はいますか? もちろん、これは保存されているデータの種類と保存方法に大きく依存する可能性があることは理解していますが、それでも人々の実際の経験に興味があります.

誰かが私にいくつかの確かな例を教えてもらえますか?

例として、この map-of-a-map のコードにはいくつかのケースがあります。つまり、値が別のマップであるマップです。

「内部」マップをベクトルのペアに置き換えることで、メモリ フットプリントを 10:1 (3G から 300M) に削減しました。もちろん、これにより検索が遅くなる可能性がありますが、この特定のケースではそれほど問題ではないようです。そして、リファクタリングと入念なテストに約 1 日かかりました。

Boost の flat_map は、私が必要としているもののように思えますが、Boost Web サイトのクラスの説明以外に、それについて多くを知ることができないようです。直接のフィードバックを探しています。

4

2 に答える 2