Simple profiling support package for Go
go get github.com/pkg/profile
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()
...
}
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.
We welcome pull requests, bug fixes and issue reports.
Before proposing a change, please discuss it first by raising an issue.
Overall
Maintained
Code review
Go module
Latest release
Releases this year
(top 24 of 29)
243 followers · starred Jun 2024
230 followers · starred May 2018
129 followers · starred Jun 2021
406 followers · starred Oct 2014
Simple profiling support package for Go
go get github.com/pkg/profile
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()
...
}
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.
We welcome pull requests, bug fixes and issue reports.
Before proposing a change, please discuss it first by raising an issue.
Overall
Maintained
Code review
Go module
Latest release
Releases this year
(top 24 of 29)
243 followers · starred Jun 2024
230 followers · starred May 2018
129 followers · starred Jun 2021
406 followers · starred Oct 2014