常常会有这样的场景,写了一个接口,上线发现性能不大好,费资源处理慢,可能是某个rpc耗时长,可能是可以并发的地方没有做并发,但发现问题比较麻烦,最好能有一些可视化的工具。
当然我们能这么做,是因为go语言集成了profile采样工具,并且允许我们在程序的运行时使用。
准备工作
写个最简单的web server,一个helloworld
package main
import (
"log"
"net/http"
"fmt"
)
func myHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello World!\n")
}
func main() {
http.HandleFunc("/hello", myHandler) // 设置访问路由
log.Fatal(http.ListenAnd