通常情况下 用–inuse_space来分析程序常驻内存的占用情况; 用–alloc_objects来分析内存的临时分配情况,可以提高程序的运行速度。
命令
弹出url http://localhost:8082/ui/?si=inuse_space http://localhost:8082/ui/?si=alloc_objects
定位过程
go tool pprof –alloc_objects pprof.product_server.alloc_objects.alloc_space.inuse_objects.inuse_space.001.pb.gz top list 比较大的函数名 查看该函数哪一行分配内存比较多。
需要频繁分配内存的情况
1.log日志打印。
aplum_product/src/product_server/models/db.(*TProduct).SetActivityRule
/Users/didiyu/Downloads/go/src/aplum_product_clear_micro/src/product_server/models/db/set_discount_product.go
Total: 8490569 22018638 (flat, cum) 5.25%
179 . . func (p *TProduct) SetActivityRule(curDiscount float64, whitelist map[string]bool) {
180 . . ConfigLoop:
181 . . for i, config := range p.ActivityConfigs {
182 5996623 5996623 log.Debug("%v conf %v,%v", i, config.ID, config.Name)
2.split方法
参考
1.–inuse/alloc_space –inuse/alloc_objects区别
原创文章转载请注明出处: --inuse/alloc_space --inuse/alloc_objects区别