Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pkg/profile
Simple profiling for Go
https://github.com/pkg/profile
Last synced: 4 days ago
JSON representation
Simple profiling for Go
- Host: GitHub
- URL: https://github.com/pkg/profile
- Owner: pkg
- License: bsd-2-clause
- Created: 2014-10-22T01:35:18.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-10-20T20:16:29.000Z (over 2 years ago)
- Last Synced: 2025-01-15T07:44:19.845Z (11 days ago)
- Language: Go
- Size: 64.5 KB
- Stars: 2,019
- Watchers: 39
- Forks: 123
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - profile - Simple profiling support package for Go. (Performance / HTTP Clients)
- zero-alloc-awesome-go - profile - Simple profiling support package for Go. (Performance / HTTP Clients)
- go-awesome - package/profile
- awesome-go - profile - Simple profiling support package for Go. Stars:`2.0K`. (Performance / HTTP Clients)
- awesome-go-extra - profile - 10-22T01:35:18Z|2021-11-02T20:31:47Z| (Performance / HTTP Clients)
- awesome-go - profile - Simple profiling for Go - ★ 827 (Utilities)
README
profile
=======Simple profiling support package for Go
[![Build Status](https://travis-ci.org/pkg/profile.svg?branch=master)](https://travis-ci.org/pkg/profile) [![GoDoc](http://godoc.org/github.com/pkg/profile?status.svg)](http://godoc.org/github.com/pkg/profile)
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
```go
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.```go
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](http://godoc.org/github.com/pkg/profile).
contributing
------------We welcome pull requests, bug fixes and issue reports.
Before proposing a change, please discuss it first by raising an issue.