, - /lib/libmemusage.so:
$ LD_PRELOAD=/lib/libmemusage.so vim
Memory usage summary: heap total: 4643025, heap peak: 997580, stack peak: 26160
total calls total memory failed calls
malloc| 42346 4528378 0
realloc| 52 7988 0 (nomove:26, dec:0, free:0)
calloc| 34 106659 0
free| 28622 3720100
Histogram for block sizes:
0-15 14226 33% ==================================================
16-31 8618 20% ==============================
32-47 1433 3% =====
48-63 4174 9% ==============
64-79 4736 11% ================
80-95 313 <1% =
...
( vim .)
, , , .
valgrind ; --leak-check=full --show-reachable=yes , .
" ", "-", " " ""
- , . malloc(1024*1024*100);, malloc(3) 100 ( ). 100 mmap(..., MAP_ANONYMOUS), - . ( . Rant malloc(3).) .
, , .
- , . C 1,5 , 100k ( ) , -. paging , . , , , Resident.
- , . ( pmap(1): pmap $$ , , , , , .) , .
, , 50-100 , C, . ( , mmap(..., MAP_PRIVATE|PROT_WRITE), , .) top(1) , SHR. ( , , (libc) .)
. , .