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()
- func MigrateFlags(action func(ctx *cli.Context) error) func(*cli.Context) error
- func Setup(ctx *cli.Context) error
- func StartPProf(address string)
- 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 ( // Debug Flags PProfFlag = cli.BoolFlag{ Name: "pprof", Usage: "Enable the pprof HTTP server", } PProfPortFlag = cli.IntFlag{ Name: "pprofport", Usage: "pprof HTTP server listening port", Value: 6060, } PProfAddrFlag = cli.StringFlag{ Name: "pprofaddr", Usage: "pprof HTTP server listening interface", Value: "127.0.0.1", } MemProfileRateFlag = cli.IntFlag{ Name: "memprofilerate", Usage: "Turn on memory profiling with the given rate", Value: runtime.MemProfileRate, } CPUProfileFlag = cli.StringFlag{ Name: "cpuprofile", Usage: "Write CPU profile to the given file", } 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
Functions ¶
func Exit ¶
func Exit()
Exit stops all running profiles, flushing their output to the respective file.
func MigrateFlags ¶
MigrateFlags sets the global flag from a local flag when it's set. This is a temporary function used for migrating old command/flags to the new format.
e.g. geth account new --keystore /tmp/mykeystore --lightkdf
is equivalent after calling this method with:
geth --keystore /tmp/mykeystore --lightkdf account new
This allows the use of the existing configuration functionality. When all flags are migrated this function can be removed and the existing configuration functionality must be changed that is uses local flags
func Setup ¶
Setup initializes profiling based on the CLI flags. It should be called as early as possible in the program.
func StartPProf ¶
func StartPProf(address string)
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.