malloc_trim -
ヒープから未使用メモリーを解放する
#include <malloc.h>
int malloc_trim(size_t pad);
malloc_trim() 関数は
(適切な引数で
sbrk(2) や
madvise(2) を呼び出して)
ヒープの未使用メモリーの解放を試みる。
pad 引数は、
ヒープの一番上から切り詰める際に残す未使用領域の量を指定する。
この引数が 0 の場合、
ヒープの一番上の最小量のメモリーだけを維持できる
(つまり 1
ページかそれ未満)。 0
以外の引数を指定すると、
ヒープの一番上にある程度の量の未使用領域を残し、
将来の割り当てを
sbrk(2)
でヒープを拡張せずに行えるようにできる。
malloc_trim()
関数はメモリーが実際に解放されシステムに戻された場合に
1 を返し、
どのメモリーも解放できなかった場合は
0 を返す。
エラーは定義されていない。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
malloc_trim() |
Thread safety |
MT-Safe |
この関数は GNU
による拡張である。
この関数は、
特定の状況では
free(3)
により自動的に呼び出される。
mallopt(3) の
M_TOP_PAD と
M_TRIM_THRESHOLD
の議論を参照。
Only the main heap (using
sbrk(2)) honors the
pad argument; thread
heaps do not.
Since glibc 2.8 this function frees memory in all arenas and in all chunks with
whole free pages.
Before glibc 2.8 this function only freed memory at the top of the heap in the
main arena.
sbrk(2),
malloc(3),
mallopt(3)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。