|
|
- package core
-
- import (
- "os"
- "runtime/pprof"
-
- ctypes "github.com/tendermint/tendermint/rpc/core/types"
- )
-
- func UnsafeFlushMempool() (*ctypes.ResultUnsafeFlushMempool, error) {
- mempool.Flush()
- return &ctypes.ResultUnsafeFlushMempool{}, nil
- }
-
- 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()
- if err := profFile.Close(); err != nil {
- return nil, err
- }
- return &ctypes.ResultUnsafeProfile{}, nil
- }
-
- func UnsafeWriteHeapProfile(filename string) (*ctypes.ResultUnsafeProfile, error) {
- memProfFile, err := os.Create(filename)
- if err != nil {
- return nil, err
- }
- if err := pprof.WriteHeapProfile(memProfFile); err != nil {
- return nil, err
- }
- if err := memProfFile.Close(); err != nil {
- return nil, err
- }
-
- return &ctypes.ResultUnsafeProfile{}, nil
- }
|