美文网首页
go 的内存分析

go 的内存分析

作者: 千罹 | 来源:发表于2018-08-09 18:03 被阅读125次

发现项目的内存占用过多,想找找原因 2018-08-09

使用 pprof

在程序代码里加上:

package main

import _ "net/http/pprof"
import "net/http"

func main() {
    go func() {
        http.ListenAndServe("0.0.0.0:8086", nil)
    }()
    // 这里写你的程序 or 代码入口
}

然后编译运行你的程序(最好是服务型的,就是一直运行那种,比如web程序,server程序)

打开 http://localhost:8086/debug/pprof 就是分析的数据

打开个终端,查看内存分析,输入如下:

go tool pprof http://localhost:8086/debug/pprof/heap   
进入 pprof 模式

(pprof) 模式下,可以输入 help 查看输出的方式:

输出方式

比如保存为图片:

(pprof) png > /someDir

(pprof) 是命令提示符

相关文章

  • go 的内存分析

    发现项目的内存占用过多,想找找原因 2018-08-09 使用 pprof 在程序代码里加上: 然后编译运行你的程...

  • golang内存逃逸

    一篇很好的博客: Go 语言机制之栈与指针 Go 语言机制之逃逸分析 Go 语言机制之内存剖析 Go 语言机制之数...

  • go tool 分析内存信息

    可以使用go tool分析CPU、内存占用情况时,pprof进行分析相关的cpu占用情况和内存占用情况:可以使用 ...

  • Go垃圾回收机制

    上一篇分析了Go的内存分配机制,本文将简单分析一下Go的垃圾回收机制。本文是《循序渐进go语言》第五篇,本文也是刚...

  • Go语言——内存管理

    Go语言——内存管理 参考: 图解 TCMalloc Golang 内存管理 Go 内存管理 问题 内存碎片:避免...

  • 聊一聊go的内存逃逸分析

    什么是内存逃逸分析 内存逃逸分析是go的编译器在编译期间,根据变量的类型和作用域,确定变量是堆上还是栈上 简单说就...

  • 图解 Go 内存管理器的内存分配策略

    关于Go的内存分配 在 Go 语言里,从内存的分配到不再使用后内存的回收等等这些内存管理工作都是由 Go 在底层完...

  • 从源码角度看Golang的堆内存管理

    从源码角度看Golang的堆内存管理 本章主要从源码角度针对Go堆上的内存管理进行分析。仅关注linux系统下的逻...

  • go 内存模型简要说明

    go 内存模型 大体上来说go的内存是先申请一大片内存,然后将内存分为各个小的span来管理,因为每个go对象有对...

  • 2019-03-10

    图解 Go 内存分配器 如何迅速分析出系统 CPU 的瓶颈在哪里? 一个面向未来的数据库应使用哪些技术? Go 生...

网友评论

      本文标题:go 的内存分析

      本文链接:https://www.haomeiwen.com/subject/elmcbftx.html