|
|
- package core
-
- import (
- "os"
- "runtime/pprof"
-
- ctypes "github.com/tendermint/tendermint/rpc/core/types"
- )
-
- var profFile *os.File
-
- func UnsafeStartCPUProfiler(filename string) (*ctypes.ResultUnsafeProfile, error) {
- var err error
- profFile, err = os.Create(filename)
- if err != nil {
- return nil, err
- }
- err = pprof.StartCPUProfile(profFile)
- if err != nil {
- return nil, err
- }
- return &ctypes.ResultUnsafeProfile{}, nil
- }
-
- func UnsafeStopCPUProfiler() (*ctypes.ResultUnsafeProfile, error) {
- pprof.StopCPUProfile()
- profFile.Close()
- return &ctypes.ResultUnsafeProfile{}, nil
- }
-
- func UnsafeWriteHeapProfile(filename string) (*ctypes.ResultUnsafeProfile, error) {
- memProfFile, err := os.Create(filename)
- if err != nil {
- return nil, err
- }
- pprof.WriteHeapProfile(memProfFile)
- memProfFile.Close()
-
- return &ctypes.ResultUnsafeProfile{}, nil
- }
|