记一次 Golang 内存泄露问题分析

pprof

pprof 是用于可视化和分析性能、分析数据的工具

CPU Profiling:CPU 分析,按照一定的频率采集所监听的应用程序 CPU(含寄存器)的使用情况,可确定应用程序在主动消耗 CPU 周期时花费时间的位置
Memory Profiling:内存分析,在应用程序进行堆分配时记录堆栈跟踪,用于监视当前和历史内存使用情况,以及检查内存泄漏
Block Profiling:阻塞分析,记录 goroutine 阻塞等待同步(包括定时器通道)的位置
Mutex Profiling:互斥锁分析,报告互斥锁的竞争情况

什么是内存泄露

怎么发现内存泄露

内存泄漏(英语:Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。

内存泄漏——维基百科

怎么发现内存泄露

High Performance Go Workshop
(翻译)Go 高性能研讨讲座 - High Performance Go Workshop


20200131220947.png

0%