如何对正在运行的进程,进行heap profile

Posted xuxm2007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何对正在运行的进程,进行heap profile相关的知识,希望对你有一定的参考价值。

简单来说, 就是先preload上tcmalloc, 日常用用没啥问题, 当感觉出现问题时, gdb attach 上, 然后执行 call HeapProfilerStart("xxx") , 过一段时间, 再执行call HeapProfilerStop, 产出相应的profile文件, 然后detach出进程

 

以下为一些未整理的 link

https://gperftools.github.io/gperftools/heapprofile.html

https://linux.cn/article-9588-1.html

https://unix.stackexchange.com/questions/36450/how-can-i-find-a-memory-leak-of-a-running-process

https://stackoverflow.com/questions/18455698/lightweight-memory-leak-debugging-on-linux

https://bugzilla.redhat.com/show_bug.cgi?id=921676

https://stackoverflow.com/questions/2564752/examining-c-c-heap-memory-statistics-in-gdb

http://milianw.de/blog/heaptrack-a-heap-memory-profiler-for-linux

https://wizardforcel.gitbooks.io/100-gdb-tips/finish-and-return.html 

https://en.wikibooks.org/wiki/Linux_Applications_Debugging_Techniques/Leaks

https://github.com/WuBingzheng/memleax

 

以上是关于如何对正在运行的进程,进行heap profile的主要内容,如果未能解决你的问题,请参考以下文章

如何对正在运行的进程,进行heap profile

如何使用WinDbg调试进程信息

如何查看mysqld进程的Profiler

如何获取系统上正在运行的进程列表并按各种参数对其进行排序

Golang pprof解读

堆状态分析的利器——gperftools的Heap Profiler