Как я могу проверить, что куча используется запущенным процессом в Solaris 10? pmap предоставляет информацию, но я хотел бы увидеть использование кучи, нужно ли мне это делать?
pmap | grep [heap]
Если мы хотим знать программно из программы, мы можем использовать следующую команду:
struct mallinfo mallinfo(void);
Функция mallinfo () возвращает копию структуры, содержащую информацию о выделении памяти, выполняемом malloc и связанными функциями. Эта структура определяется следующим образом:
struct mallinfo {
int arena; /* Non-mmapped space allocated (bytes) */
int ordblks; /* Number of free chunks */
int smblks; /* Number of free fastbin blocks */
int hblks; /* Number of mmapped regions */
int hblkhd; /* Space allocated in mmapped regions (bytes) */
int usmblks; /* Maximum total allocated space (bytes) */
int fsmblks; /* Space in freed fastbin blocks (bytes) */
int uordblks; /* Total allocated space (bytes) */
int fordblks; /* Total free space (bytes) */
int keepcost; /* Top-most, releasable space (bytes) */
};
Будет ли полезно узнать, сколько памяти мы уже выделили (общий объем выделенной памяти - общий объем освобожденной памяти, равный выделенной чистой памяти)?
dtrace
, вас могут заинтересовать графики роста памяти - person Mark Plotnick   schedule 10.09.2015