mirror of https://github.com/shirou/gopsutil
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This PR adds support for reading the frequency of Apple Silicon M1/M2 CPUs. We do so by reading the values out of the IOKit framework, as a few other projects have now demonstrated to be possible. This requires the use of CGO. The library provides a convenience IsAppleSilicon() guard to detect whether the values can be read. Currently gopsutil does not support the big.LITTLE CPU architectures (i think?) - in fact the P and E cores have different max frequencies. For now, just read the P core frequency. The E core data is readily available if we want to read it in the future. Closes #1000 Small example program ```go package main import ( "fmt" "github.com/shoenig/go-m1cpu" "github.com/shirou/gopsutil/v3/cpu" ) func main() { fmt.Println("is Apple Silicon:", m1cpu.IsAppleSilicon()) fmt.Println("model name", m1cpu.ModelName()) fmt.Println("pCore GHz", m1cpu.PCoreGHz()) fmt.Println("eCore GHz", m1cpu.ECoreGHz()) fmt.Println("pCore Hz", m1cpu.PCoreHz()) fmt.Println("eCore Hz", m1cpu.ECoreHz()) fmt.Println("----- gopsutil ----") infos, err := cpu.Info() if err != nil { panic(err) } for _, info := range infos { fmt.Println("info.Mhz", info.Mhz) } } ``` ```shell go run main.go is Apple Silicon: true model name Apple M2 Pro pCore GHz 3.504 eCore GHz 2.424 pCore Hz 3504000000 eCore Hz 2424000000 ----- gopsutil ---- info.Mhz 3.504e+09 ``` |
2 years ago | |
---|---|---|
.. | ||
testdata | 3 years ago | |
cpu.go | 3 years ago | |
cpu_aix.go | 3 years ago | |
cpu_aix_cgo.go | 3 years ago | |
cpu_aix_nocgo.go | 2 years ago | |
cpu_darwin.go | 2 years ago | |
cpu_darwin_cgo.go | 3 years ago | |
cpu_darwin_nocgo.go | 3 years ago | |
cpu_darwin_test.go | 2 years ago | |
cpu_dragonfly.go | 3 years ago | |
cpu_dragonfly_amd64.go | 5 years ago | |
cpu_fallback.go | 3 years ago | |
cpu_freebsd.go | 3 years ago | |
cpu_freebsd_386.go | 8 years ago | |
cpu_freebsd_amd64.go | 8 years ago | |
cpu_freebsd_arm.go | 6 years ago | |
cpu_freebsd_arm64.go | 5 years ago | |
cpu_freebsd_test.go | 3 years ago | |
cpu_linux.go | 2 years ago | |
cpu_linux_test.go | 2 years ago | |
cpu_openbsd.go | 3 years ago | |
cpu_openbsd_386.go | 3 years ago | |
cpu_openbsd_amd64.go | 3 years ago | |
cpu_openbsd_arm.go | 3 years ago | |
cpu_openbsd_arm64.go | 3 years ago | |
cpu_plan9.go | 3 years ago | |
cpu_plan9_test.go | 2 years ago | |
cpu_solaris.go | 3 years ago | |
cpu_solaris_test.go | 3 years ago | |
cpu_test.go | 3 years ago | |
cpu_windows.go | 2 years ago |