1. ホーム
  2. c++

[解決済み] カスタムC++アロケータの説得力のある例?

2022-04-14 20:36:31

質問

を捨てる本当に良い理由は何ですか? std::allocator を、カスタムソリューションの代わりに使用することはできますか?正しさ、パフォーマンス、スケーラビリティなどのために絶対に必要な状況に遭遇したことがありますか?本当に賢い例があれば教えてください。

カスタムアロケータは、Standard Libraryの機能の中で、いつもあまり必要性のないものでした。ただ、SOの誰かが、その存在を正当化するための説得力のある例を示してくれないかと思っただけです。

どのように解決するのですか?

先ほど述べたように ここで Intel TBB のカスタム STL アロケーターを変更するだけで、マルチスレッド・アプリのパフォーマンスが大幅に向上するのを見たことがあります。

std::vector<T>

になります。

std::vector<T,tbb::scalable_allocator<T> >

(これは TBB の巧妙なスレッドプライベートヒープを使うようにアロケータを切り替える簡単で便利な方法です; 参照。 このドキュメントの7ページ目 )