现象
线上 nginx + php-fpm来实时处理请求, php处理请求时需加载我们写的扩展;
发现每次请求处理完都有少量的内存泄漏, 因为是线上实时服务, 长时间运行的话此内存泄漏不可忽视;
使用...245)
==15320== by 0xB571C69: deserialize_GetChildrenResponse (zookeeper.jute.c...的结构:
struct String_vector {
int32_t count;
char * *data;
};
实际上表示一个字符串数组, count:包含的字符串个数,data...: 字符串数组的指针, 那么问题就很明显了,zoo_get_children中分配了data数组的内存, 又分配了data里包含的每个字符串的内存, 但没有释放;
使用 deallocate_String_vector...(在generated/zookeeper.jute.h中)来释放内存, 再次运行 ``valgrind --tool=memcheck --leak-check=full --log-file=.