以前に答えたことは知っていますが、それはあなたの質問ではなく、他の答えに対する答えでした。
直接お話を伺うと、私の理解が正しければ、パフォーマンス ユース ケースの基準はスループットです。
これは、 NUMA 対応の allocatorsをほぼ排他的に見なければならないことを意味します。
以前の参照はありません。IBM JVM 論文、Microquill C、SUN JVM。この点をカバーするので、少なくとも AMD ABI では、NUMA が卓越したメモリ CPU ガバナーである今日のアプリケーションを非常に疑っています。
手を下げて; 現実の世界、偽の世界、どんな世界でも... NUMA 対応のメモリ要求/使用テクノロジはより高速です。残念ながら、私は現在 Windows を実行しており、Linux で利用可能な「numastat」が見つかりません。
私の友人は、FreeBSD カーネルの実装でこれについて詳しく書いています。
リモートノードの上に通常非常に大量のローカルノードメモリリクエストを表示できるにもかかわらず(パフォーマンススループットの明らかな利点を強調しています)、あなたは自分自身を無愛想にベンチマークすることができます。あなたのパフォーマンス特性は非常に具体的です。
多くの点で、少なくとも以前の 5.x VMWARE は、少なくとも当時は、リモート ノードから頻繁にページを要求する NUMA を利用していなかったため、フェアリングがかなり不十分だったことを知っています。ただし、メモリのコンパートメント化またはコンテナ化に関しては、VM は非常にユニークな獣です。
私が引用した参考文献の 1 つは、AMD ABI 用の Microsoft の API 実装です。これには、ユーザー ランド アプリケーション開発者が利用できる NUMA 割り当てに特化したインターフェイスがあります;)
これは、4 つの異なるヒープ実装を比較する一部のブラウザー アドオン開発者による、かなり最近の視覚的およびすべての分析です。当然のことながら、彼らが開発したものがトップであることが判明しました (奇妙なことに、テストを行う人々がしばしば最高のスコアを示します)。
彼らは、少なくとも彼らのユースケースでは、空間/時間の間の正確なトレードオフが何であるかをいくつかの方法で定量的にカバーしています.一般的に、彼らはLFHを特定していました.または同様に設計されたアプローチは、本質的にバットから大幅に多くのメモリを消費しますが、時間の経過とともにメモリの使用量が少なくなる可能性があります...グラフもきれいです...
ただし、よく理解した後、典型的なワークロードに基づいて HEAP 実装を選択することは良い考えだと思います;)が、ニーズをよく理解するには、これらのオッズとエンドを最適化する前に、まず基本的な操作が正しいことを確認してください;)