在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
性能优化总结: 1 尽量避免频繁创建对象,即减少&{},new,make的使用
性能优化方法: =======================CPU性能分析方法========================= 方式一: 对象:非web程序, 在程序中引入runtime/pprof包,并添加如下代码: filename := "cpu_profile" // 最好是在放在主函数中 test.pprof CPU分析文件 f, err := os.Create(filename) if err != nil { fmt.Println(err) return } pprof.StartCPUProfile(f) defer pprof.StopCPUProfile() defer f.Close() 使用:终端执行 go tool pprof program_name cpu_profile
方式二: 对象:web程序,引入net/http/pprof包, 且web的路由处理为默认处理,若非默认路由,则为其添加如下类似路由处理: func init() { http.Handle("/debug/pprof/", http.HandlerFunc(Index)) http.Handle("/debug/pprof/cmdline", http.HandlerFunc(Cmdline)) http.Handle("/debug/pprof/profile", http.HandlerFunc(Profile)) http.Handle("/debug/pprof/symbol", http.HandlerFunc(Symbol)) } ps:此段代码为net/http/pprof内代码,为自定义路由处理添加时将函数转换成pprof包的调用即可,如:Index ==> pprof.Index 使用:浏览器访问上述路径即可,也可用 go tool pprof program_name http:xxx:xx/debug/pprof/profile进入命令行交互模式使用
方式三: 对象:应用程序或Test案例(可执行结束的), 进入工作目录使用如下命令: Go test -cpuprofile filename net/http // filename 为自定义文件名,会生成此文件和http.test文件 使用: go tool pprof http.test filename
================================GC性能分析方法=========================== 设置环境变量:export GODEBUG=gctrace=1 // 具体数据含义百度~~ |
请发表评论