tcmalloc compila y usa

Uno, compilar

https://github.com/gperftools/gperftools/releases
descargue la versión requerida del código en la página de enlace anterior;

cd /home/code/;
tar -zxvf gperftools-2.7.90.tar.gz;
cd gperftools-2.7.90;
../configure --prefix=/usr/local/lib --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimal 
make && make install
可根据需求打开关闭指定的模块。 google-perftools的组件,包括TCMalloc、heap-checker、heap-profiler和cpu-profiler共4个组件。

La compilación está completa para generar la biblioteca lib en la ruta especificada por -prefix, nombre de archivo: libtcmalloc_minimall.so

Dos, usa

1) Enlace estático
Agregue /usr/local/lib/libtcmalloc_minimal.a al final de la opción de compilación para vincular la biblioteca estática
2) Enlace dinámico
Inserte -L / usr / local / lib -ltcmalloc_minimal aquí en la opción de compilación;
3) , Reinicie el proceso para usarlo,
ejecute export LD_PRELOAD = / usr / local / lib / libtcmalloc_minimal.so antes de iniciar el proceso;

Tres, otros usos

1) Detección de fugas de memoria
xxxxxx

Cuatro, solución de problemas

1. Utilice el enlace tcmalloc con la versión 2.5 y superior, y después de solicitar la liberación de una memoria más grande (prueba 30g), la memoria sigue siendo alta, lo que provoca una supuesta pérdida de memoria;

Razón: La versión alta de tcmalloc retendrá una parte de la memoria y no la devolverá al sistema operativo. Esta parte de la memoria puede ser solicitada por otros procesos cuando la memoria del sistema es alta; además, tcmalloc proporciona la interfaz. MallocExtension_ReleaseToSystem (gperftools-2.7 \ src \ gperftools \ malloc_extension_c.h) Libera la memoria retenida en el sistema operativo;

PERFTOOLS_DLL_DECL void MallocExtension_ReleaseToSystem(size_t num_bytes);

Materiales de referencia:
Introducción a tcmalloc: https://zhuanlan.zhihu.com/p/29216091

Supongo que te gusta

Origin blog.csdn.net/sun172270102/article/details/106147615
Recomendado
Clasificación