1

メモリ プール システムを作成する代わりに、アプリケーションの開始時に各オブジェクトに巨大な配列を割り当てて使用することはできません。極端な場合、一部のオブジェクトは配列よりも多くのインスタンスを必要とし、配列は 2 倍になります。またはサイズが4倍になったので、二度と最大サイズに達することはありません.メモリよりも速度が必要なので、それは公正なトレードオフだと思います?

4

1 に答える 1

5

あなたが説明しているものとメモリプールの唯一の違いは、通常、プールアロケータはメモリが不足すると新しいプールを割り当て、不足すると配列全体を再割り当てすることです。これにより、最悪の場合のランタイムが大幅に増加し、再割り当て時にポインターと参照が無効になることを回避するためのスキームが必要になります。これにより、プログラム全体のパフォーマンスが低下する可能性があります。

プール アロケーターの最悪のケースは、スペースが不足し、新しい配列を割り当てなければならない場合です。アロケーターの最悪のケースでは、それが不足し、新しいより大きな配列を割り当て、古いオブジェクトをすべて新しい配列にコピーする必要があります。明らかに後者の方が時間がかかります。

于 2012-11-26T19:42:45.600 に答える