Documentation ¶
Overview ¶
Package debug defines useful profiling utils that came originally with go-ethereum. Copyright 2016 The go-ethereum Authors This file is part of the go-ethereum library.
The go-ethereum library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The go-ethereum library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
Index ¶
- Variables
- func Exit(ctx *cli.Context)
- func Setup(ctx *cli.Context) error
- type HandlerT
- func (*HandlerT) BlockProfile(file string, nsec uint) error
- func (h *HandlerT) CPUProfile(file string, nsec uint) error
- func (*HandlerT) FreeOSMemory()
- func (*HandlerT) GcStats() *debug.GCStats
- func (h *HandlerT) GoTrace(file string, nsec uint) error
- func (*HandlerT) MemStats() *runtime.MemStats
- func (*HandlerT) MutexProfile(file string, nsec uint) error
- func (*HandlerT) SetBlockProfileRate(rate int)
- func (*HandlerT) SetGCPercent(v int) int
- func (*HandlerT) SetMutexProfileFraction(rate int)
- func (*HandlerT) Stacks() string
- func (h *HandlerT) StartCPUProfile(file string) error
- func (h *HandlerT) StartGoTrace(file string) error
- func (h *HandlerT) StopCPUProfile() error
- func (h *HandlerT) StopGoTrace() error
- func (*HandlerT) WriteBlockProfile(file string) error
- func (*HandlerT) WriteMemProfile(file string) error
- func (*HandlerT) WriteMutexProfile(file string) error
Constants ¶
This section is empty.
Variables ¶
var ( // PProfFlag to enable pprof HTTP server. PProfFlag = &cli.BoolFlag{ Name: "pprof", Usage: "Enable the pprof HTTP server", } // PProfPortFlag to specify HTTP server listening port. PProfPortFlag = &cli.IntFlag{ Name: "pprofport", Usage: "pprof HTTP server listening port", Value: 6060, } // PProfAddrFlag to specify HTTP server address. PProfAddrFlag = &cli.StringFlag{ Name: "pprofaddr", Usage: "pprof HTTP server listening interface", Value: "127.0.0.1", } // MemProfileRateFlag to specify the mem profiling rate. MemProfileRateFlag = &cli.IntFlag{ Name: "memprofilerate", Usage: "Turn on memory profiling with the given rate", Value: runtime.MemProfileRate, } // MutexProfileFractionFlag to specify the mutex profiling rate. MutexProfileFractionFlag = &cli.IntFlag{ Name: "mutexprofilefraction", Usage: "Turn on mutex profiling with the given rate", } // BlockProfileRateFlag to specify the block profiling rate. BlockProfileRateFlag = &cli.IntFlag{ Name: "blockprofilerate", Usage: "Turn on block profiling with the given rate", } // CPUProfileFlag to specify where to write the CPU profile. CPUProfileFlag = &cli.StringFlag{ Name: "cpuprofile", Usage: "Write CPU profile to the given file", } // TraceFlag to specify where to write the trace execution profile. TraceFlag = &cli.StringFlag{ Name: "trace", Usage: "Write execution trace to the given file", } )
var Handler = new(HandlerT)
Handler is the global debugging handler.
var Memsize memsizeui.Handler
Memsize is the memsizeui Handler(?).
Functions ¶
Types ¶
type HandlerT ¶
type HandlerT struct {
// contains filtered or unexported fields
}
HandlerT implements the debugging API. Do not create values of this type, use the one in the Handler variable instead.
func (*HandlerT) BlockProfile ¶
BlockProfile turns on goroutine profiling for nsec seconds and writes profile data to file. It uses a profile rate of 1 for most accurate information. If a different rate is desired, set the rate and write the profile manually.
func (*HandlerT) CPUProfile ¶
CPUProfile turns on CPU profiling for nsec seconds and writes profile data to file.
func (*HandlerT) FreeOSMemory ¶
func (*HandlerT) FreeOSMemory()
FreeOSMemory returns unused memory to the OS.
func (*HandlerT) MutexProfile ¶
MutexProfile turns on mutex profiling for nsec seconds and writes profile data to file. It uses a profile rate of 1 for most accurate information. If a different rate is desired, set the rate and write the profile manually.
func (*HandlerT) SetBlockProfileRate ¶
SetBlockProfileRate sets the rate of goroutine block profile data collection. rate 0 disables block profiling.
func (*HandlerT) SetGCPercent ¶
SetGCPercent sets the garbage collection target percentage. It returns the previous setting. A negative value disables GC.
func (*HandlerT) SetMutexProfileFraction ¶
SetMutexProfileFraction sets the rate of mutex profiling.
func (*HandlerT) StartCPUProfile ¶
StartCPUProfile turns on CPU profiling, writing to the given file.
func (*HandlerT) StartGoTrace ¶
StartGoTrace turns on tracing, writing to the given file.
func (*HandlerT) StopCPUProfile ¶
StopCPUProfile stops an ongoing CPU profile.
func (*HandlerT) StopGoTrace ¶
StopGoTrace stops an ongoing trace.
func (*HandlerT) WriteBlockProfile ¶
WriteBlockProfile writes a goroutine blocking profile to the given file.
func (*HandlerT) WriteMemProfile ¶
WriteMemProfile writes an allocation profile to the given file. Note that the profiling rate cannot be set through the API, it must be set on the command line.
func (*HandlerT) WriteMutexProfile ¶
WriteMutexProfile writes a goroutine blocking profile to the given file.