Perf Utilities for Go
This package is a go library for interacting with the perf subsystem in Linux. I had trouble finding a golang perf library so I decided to write this by using the linux’s perf as a reference. This library allows you to do things like see how many CPU instructions a function takes (roughly), profile a process for various hardware events, and other interesting things. Note that because the go scheduler can schedule a goroutine across many OS threads it becomes rather difficult to get an exact profile of an invididual goroutine. However, a few tricks can be used; first a call to runtime.LockOSThread to lock the current goroutine to an OS thread. Second a call to unix.SchedSetaffinity, with a CPU set mask set. Note that if the pid argument is set 0 the calling thread is used (the thread that was just locked). Before using this library you should probably read the perf_event_open man page which this library uses heavily. See this kernel guide for a tutorial how to use perf and some of the limitations. This package contains the source code needed for building packages that reference the following Go import paths: – github.com/hodgesds/perf-utils
Release | Stable | Testing |
---|---|---|
Fedora Rawhide | 0.7.0-6.fc41 | - |
Fedora 41 | 0.7.0-6.fc41 | - |
Fedora 40 | 0.7.0-4.fc40 | - |
You can contact the maintainers of this package via email at
golang-github-hodgesds-perf-utils dash maintainers at fedoraproject dot org
.