| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package main
- import (
- "log"
- "os"
- "runtime/pprof"
- "time"
- )
- type pprofDemo struct {
- }
- func (demo *pprofDemo) run() {
- for i := 0; i < 10; i++ {
- log.Printf("Loop %d", i)
- time.Sleep(1*time.Second)
- }
- }
- func main() {
- log.SetFlags(log.LstdFlags | log.Lshortfile)
- // cpu
- cpuFile, err := os.OpenFile("D://Test//test_cpu.pprof", os.O_CREATE|os.O_TRUNC|os.O_RDWR, os.ModePerm)
- if err != nil {
- log.Fatal(err)
- }
- defer func() {
- _ = cpuFile.Close()
- }()
- defer pprof.StopCPUProfile()
- if err = pprof.StartCPUProfile(cpuFile); err != nil {
- log.Fatal(err)
- }
- new(pprofDemo).run()
- // mem
- memFile, err := os.OpenFile("D://Test//test_mem.pprof", os.O_CREATE|os.O_TRUNC|os.O_RDWR, os.ModePerm)
- if err != nil {
- log.Fatal(err)
- }
- defer func() {
- _ = memFile.Close()
- }()
- if err = pprof.WriteHeapProfile(memFile);err != nil {
- log.Fatal(err)
- }
- }
|