問題タブ [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.

0 投票する
3 に答える
372 参照

c++ - Boostと外部データソースを備えたフライウェイト

たぶん、私が見ていないこれを回避する簡単な方法があるので、誰かが私にそれを説明できることを願っています。

私がクラスを持っているとしましょう:

そして、そのクラスのジェネレーターは次のとおりです。

これらのオブジェクトへの参照は数百万になる可能性があり、実際には大量のデータが含まれているため、boost::flyweightこれらのオブジェクトを処理するために使用したいと思います。Aそれらは一緒にハッシュされnameますfileName

これを機能させるには何が必要ですか?結果のクラスboost::flyweightを呼び出しAReader.readObjectてハッシュ/保存する必要があります。A

AReaderフルファクトリになり、カスタムファクトリとして使用する必要がありますか?または、フライウェイトでデフォルトのファクトリを使用し、インスタンスをフライウェイトの何かへの引数にすることによって、インスタンスAReaderを生成するために使用することは可能ですかA(ファクトリに必要なストレージパターン全体を実装するのではなく) ?AReaderまたはconst、2番目のクラスに頼ることなく、外部データソースからパブリック変数を取得することは可能ですか(つまり、一度設定すると変更されません)?

編集

Boostを使用しない他の提案も受け付けています。私は確かにフライ級の独自の実装、またはより適している場合は他のパターンを書くことができます。しかし、私がすでに存在するものを使用できるのであれば、それが最善でしょう。いつものように、締め切りが短いので、私が書く必要のあるコードの量を最小限に抑えるものは何でも。

0 投票する
1 に答える
945 参照

c++ - boost :: flyweightは参照カウントを行いますか?

のドキュメントを読んでいますがboost::flyweight、割り当て解除または参照カウントポリシーについての言及はありません。基本的に、flyweightオブジェクトは個別の値のリポジトリのように動作する必要がありますが、個別の値が使用されなくなったときに何が起こるかは明確ではありません。

すでにサポートされていますか?カスタムファクトリで有効にできますか?

0 投票する
2 に答える
555 参照

c++ - boost :: flyweight内部コンテナに関する情報を取得する方法はありますか?

boost :: flyweightを使用すると、メモリを節約できるはずです。ソリューションの有効性を定量的に測定する方法を探しています。

内部コンテナのsize()を取得する方法はありますか?ハッシュベースのフライウェイトの場合、バケットのステータスに関する情報を取得する方法はありますか?ハッシュ衝突など?

任意のポインタをいただければ幸いです。

0 投票する
1 に答える
391 参照

c++ - フライ級パニックを加速させる

Boost 1.39 を使用しています。を使用してクラスを実装しましたboost::flyweight<no_locking, hashed_factory<> >(私のアプリケーションはシングルスレッドです)。クラスのテスト プログラムは問題なくパスしますが、アプリケーションで in を使用すると、in でパニックになります

フレーム #9 では 0x0 であることに注意してください

boost::flyweight を使用して参照カウントの問題を引き起こす可能性があるコードから、どのようにして可能性があるのか​​ わかりません。結局のところ、私のインターフェイスには、flyweight オブジェクトを追加して破棄するためのメソッドしか含まれていません。

問題を解決する方法がわかりません。何か案は?