glibc の malloc 実装は 'malloc_trim()' 呼び出しをサポートしており、アプリケーション プログラムが未使用 (解放されたメモリ チャンク) を解放してシステムに戻すことができます (実装の詳細: 負の引数を指定して sbrk() を呼び出すと、プログラムのデータ セグメントが削減されます)。ただし、この機能はメインアリーナでのみ機能します。マルチスレッド プログラムでは、解放されたチャンクを保持するアリーナが複数あります。この呼び出しが他のアリーナからもメモリを解放しないのはなぜですか?
1608 次