例子 gist 来自之前的 Trie 的实现, Ruby vs Go.
mainos.Create("cpu_profile")pprof.StartCPUProfiledefer pprof.StopCPUProfile()CPU ProfilingWhen CPU profiling is enabled, the Go program stops about 100 times per second and records a sample consisting of the program counters on the currently executing goroutine’s stack.
helptoptop15main.NewNode35.09% + 12.28% = 47.37%main.NewNodelist Memory Profiling pprof.WriteHeapProfile(memProfile)然后是跟上面一样的生成图片:
Type: inuse_space 是监控内存的默认选项, 还可以选 -alloc_space, -inuse_objects, -alloc_objects
_objects net/http/pprof net/http/pprof_ "net/http/pprof"/debug/pprof/用 wrk (brew install wrk) 模拟测试
wrk -c 200 -t 4 -d 3m http://localhost:8080/hellogo tool pprof