profiling

package
v0.0.0-...-ef45db5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2024 License: Apache-2.0 Imports: 15 Imported by: 7

Documentation

Overview

Package profiling provides a tool to profile various aspects of the process.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Profiler

type Profiler struct {
	// BindHTTP, if not empty, is the HTTP address to bind to.
	//
	// Can also be configured with "-profile-bind-http" flag.
	BindHTTP string

	// Dir, if set, is the path where profiling data will be written to.
	//
	// Can also be configured with "-profile-output-dir" flag.
	Dir string

	// ProfileCPU, if true, indicates that the profiler should profile the CPU.
	//
	// Requires Dir to be set, since it's where the profiler output is dumped.
	//
	// Can also be set with "-profile-cpu".
	ProfileCPU bool

	// ProfileTrace, if true, indicates that the profiler should enable
	// runtime tracing.
	//
	// Requires Dir to be set, since it's where the profiler output is dumped.
	//
	// Can also be set with "-profile-trace".
	ProfileTrace bool

	// ProfileHeap, if true, indicates that the profiler should profile heap
	// allocations.
	//
	// Requires Dir to be set, since it's where the profiler output is dumped.
	//
	// Can also be set with "-profile-heap".
	ProfileHeap bool

	// ProfileHeapFrequency, if set non-zero, instructs the profiler to
	// periodically dump heap profiler snapshots.
	//
	// Requires Dir to be set, since it's where the profiler output is dumped.
	//
	// Can also be set with "-profile-heap-frequency".
	ProfileHeapFrequency time.Duration

	// Logger, if not nil, will be used to log events and errors. If nil, no
	// logging will be used.
	Logger logging.Logger
	// Clock is the clock instance to use. If nil, the system clock will be used.
	Clock clock.Clock
	// contains filtered or unexported fields
}

Profiler helps setup and manage profiling

func (*Profiler) AddFlags

func (p *Profiler) AddFlags(fs *flag.FlagSet)

AddFlags adds command line flags to common Profiler fields.

func (*Profiler) DumpSnapshot

func (p *Profiler) DumpSnapshot() error

DumpSnapshot dumps a profile snapshot to the configured output directory. If no output directory is configured, nothing will happen.

func (*Profiler) Start

func (p *Profiler) Start() error

Start starts the Profiler's configured operations. On success, returns a function that can be called to shutdown the profiling server.

Calling Stop is not necessary, but will enable end-of-operation profiling to be gathered.

func (*Profiler) Stop

func (p *Profiler) Stop()

Stop stops the Profiler's operations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL