记一次内存泄露(查看Golang程序的gorutine数量)

众所周知,为了获得正在运行的Golang程序的profile信息,需要增加如下代码到main函数中

import _ "net/http/pprof"

func main(){
  go func(){
  log.Error(http.ListenAndServe(":6060",nil))
}
}

以上代码会新起一个gorutine,用来获取golang程序的profile信息。

打开浏览器输入 http://localhost:6060/debug/pprof

会出现

/debug/pprof/
profiles:
0 block
135 goroutine
798 heap
0 mutex
35 threadcreate

其中第二项就是goroutine的数量,这个值一旦很大就预示着这个程序很大可能goroutine泄露。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 程序各种指标 是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减...
    初级赛亚人阅读 5,346评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,932评论 18 139
  • 概要 profile就是定时采样,收集cpu,内存等信息,进而给出性能优化指导,golang 官方提供了golan...
    上海大坤哥阅读 17,664评论 0 16
  • 总会有结束的那天 你着急什么
    阿嚏fairy阅读 224评论 0 0
  • 阿朗和阿花是山里从小一起啊长大的小伙伴,阿朗长阿花2岁。山歌数阿朗的嘹亮,阿花的优美。村里哪有什么独生子呢,作为大...
    MM元阅读 304评论 0 0