問題タブ [boost-flyweight]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Boostと外部データソースを備えたフライウェイト
たぶん、私が見ていないこれを回避する簡単な方法があるので、誰かが私にそれを説明できることを願っています。
私がクラスを持っているとしましょう:
そして、そのクラスのジェネレーターは次のとおりです。
これらのオブジェクトへの参照は数百万になる可能性があり、実際には大量のデータが含まれているため、boost::flyweight
これらのオブジェクトを処理するために使用したいと思います。A
それらは一緒にハッシュされname
ますfileName
。
これを機能させるには何が必要ですか?結果のクラスboost::flyweight
を呼び出しAReader.readObject
てハッシュ/保存する必要があります。A
AReader
フルファクトリになり、カスタムファクトリとして使用する必要がありますか?または、フライウェイトでデフォルトのファクトリを使用し、インスタンスをフライウェイトの何かへの引数にすることによって、インスタンスAReader
を生成するために使用することは可能ですかA
(ファクトリに必要なストレージパターン全体を実装するのではなく) ?AReader
またはconst
、2番目のクラスに頼ることなく、外部データソースからパブリック変数を取得することは可能ですか(つまり、一度設定すると変更されません)?
編集
Boostを使用しない他の提案も受け付けています。私は確かにフライ級の独自の実装、またはより適している場合は他のパターンを書くことができます。しかし、私がすでに存在するものを使用できるのであれば、それが最善でしょう。いつものように、締め切りが短いので、私が書く必要のあるコードの量を最小限に抑えるものは何でも。
c++ - boost :: flyweightは参照カウントを行いますか?
のドキュメントを読んでいますがboost::flyweight
、割り当て解除または参照カウントポリシーについての言及はありません。基本的に、flyweightオブジェクトは個別の値のリポジトリのように動作する必要がありますが、個別の値が使用されなくなったときに何が起こるかは明確ではありません。
すでにサポートされていますか?カスタムファクトリで有効にできますか?
c++ - boost :: flyweight内部コンテナに関する情報を取得する方法はありますか?
boost :: flyweightを使用すると、メモリを節約できるはずです。ソリューションの有効性を定量的に測定する方法を探しています。
内部コンテナのsize()を取得する方法はありますか?ハッシュベースのフライウェイトの場合、バケットのステータスに関する情報を取得する方法はありますか?ハッシュ衝突など?
任意のポインタをいただければ幸いです。
c++ - フライ級パニックを加速させる
Boost 1.39 を使用しています。を使用してクラスを実装しましたboost::flyweight<no_locking, hashed_factory<> >
(私のアプリケーションはシングルスレッドです)。クラスのテスト プログラムは問題なくパスしますが、アプリケーションで in を使用すると、in でパニックになります
フレーム #9 では 0x0 であることに注意してください
boost::flyweight を使用して参照カウントの問題を引き起こす可能性があるコードから、どのようにして可能性があるのか わかりません。結局のところ、私のインターフェイスには、flyweight オブジェクトを追加して破棄するためのメソッドしか含まれていません。
問題を解決する方法がわかりません。何か案は?