如何利用gperftools在macOS中追踪并修复Java内存泄漏?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1797个文字,预计阅读时间需要8分钟。
最近几天在排查一个堆外内存泄漏问题时,发现很多人提到gperftools这个神器。想尝试一下,结果发现它对macOS的支持不太友好。而且很多教程都是针对C++的,涉及到的通用编译链接操作比较复杂。
这几天在排查一个堆外内存泄漏的问题时看到很多人都提到了gperftools这个神器,想要尝试一下结果发现它对macOS的支持不太友好。而且大多数教程是针对C++的,里面的一通编译链接的操作看得我个Java仔眼花缭乱的。所以我在这里整理一份mac和Java版的使用教程,免得大家再来踩坑了。
一、简介
gperftools是google提供的一套分析工具,包括堆内存检测heap-profiler,内存泄漏分析工具heap-checker和CPU性能监测工具cpu-profiler。众所周知堆外内存的泄漏是很难追踪的,使用MAT等dump分析工具也只能从堆中最大或者最多的对象入手去分析发生泄漏的地方。而gperftools将malloc的调用替换为它自己的tcmalloc,从而统计所有内存分配的行为,帮助我们更快的定位到发生泄漏的地方。
二、安装
直接用homebrew安装就可以了。
本文共计1797个文字,预计阅读时间需要8分钟。
最近几天在排查一个堆外内存泄漏问题时,发现很多人提到gperftools这个神器。想尝试一下,结果发现它对macOS的支持不太友好。而且很多教程都是针对C++的,涉及到的通用编译链接操作比较复杂。
这几天在排查一个堆外内存泄漏的问题时看到很多人都提到了gperftools这个神器,想要尝试一下结果发现它对macOS的支持不太友好。而且大多数教程是针对C++的,里面的一通编译链接的操作看得我个Java仔眼花缭乱的。所以我在这里整理一份mac和Java版的使用教程,免得大家再来踩坑了。
一、简介
gperftools是google提供的一套分析工具,包括堆内存检测heap-profiler,内存泄漏分析工具heap-checker和CPU性能监测工具cpu-profiler。众所周知堆外内存的泄漏是很难追踪的,使用MAT等dump分析工具也只能从堆中最大或者最多的对象入手去分析发生泄漏的地方。而gperftools将malloc的调用替换为它自己的tcmalloc,从而统计所有内存分配的行为,帮助我们更快的定位到发生泄漏的地方。
二、安装
直接用homebrew安装就可以了。

