# README
profile
Simple profiling support package for Go
installation
go get github.com/pkg/profile
usage
Enabling profiling in your application is as simple as one line at the top of your main function
import "github.com/pkg/profile"
func main() {
defer profile.Start().Stop()
...
}
options
What to profile is controlled by config value passed to profile.Start. By default CPU profiling is enabled.
import "github.com/pkg/profile"
func main() {
// p.Stop() must be called before the program exits to
// ensure profiling information is written to disk.
p := profile.Start(profile.MemProfile, profile.ProfilePath("."), profile.NoShutdownHook)
...
// You can enable different kinds of memory profiling, either Heap or Allocs where Heap
// profiling is the default with profile.MemProfile.
p := profile.Start(profile.MemProfileAllocs, profile.ProfilePath("."), profile.NoShutdownHook)
}
Several convenience package level values are provided for cpu, memory, and block (contention) profiling.
For more complex options, consult the documentation.
contributing
We welcome pull requests, bug fixes and issue reports.
Before proposing a change, please discuss it first by raising an issue.
# Functions
BlockProfile enables block (contention) profiling.
ClockProfile enables wall clock (fgprof) profiling.
CPUProfile enables cpu profiling.
GoroutineProfile enables goroutine profiling.
MemProfile enables memory profiling.
MemProfileAllocs changes which type of memory to profile allocations.
MemProfileHeap changes which type of memory profiling to profile the heap.
MemProfileRate enables memory profiling at the preferred rate.
MutexProfile enables mutex profiling.
NoShutdownHook controls whether the profiling package should hook SIGINT to write profiles cleanly.
ProfilePath controls the base path where various profiling files are written.
Quiet suppresses informational messages during profiling.
Start starts a new profiling session.
ThreadcreationProfile enables thread creation profiling.
Trace profile enables execution tracing.
# Constants
DefaultMemProfileRate is the default memory profiling rate.