Skip to content
forked from shoenig/go-m1cpu

Library for inspecting Apple Silicon CPUs in Go

License

Notifications You must be signed in to change notification settings

gendago/go-m1cpu

Repository files navigation

m1cpu

Go Reference MPL License Run CI Tests

The go-m1cpu module is a library for inspecting Apple Silicon CPUs in Go.

Use the m1cpu Go package for looking up the CPU frequency for Apple M1 and M2 CPUs.

Install

go get github.com/shoenig/go-m1cpu@latest

CGO

This package requires the use of CGO.

Extracting the CPU properties is done via Apple's IOKit framework, which is accessible only through system C libraries.

Example

Simple Go program to print Apple Silicon M1/M2 CPU speeds.

package main

import (
	"fmt"

	"github.com/shoenig/go-m1cpu"
)

func main() {
	fmt.Println("Apple Silicon", m1cpu.IsAppleSilicon())

	fmt.Println("pCore GHz", m1cpu.PCoreGHz())
	fmt.Println("eCore GHz", m1cpu.ECoreGHz())

	fmt.Println("pCore Hz", m1cpu.PCoreHz())
	fmt.Println("eCore Hz", m1cpu.ECoreHz())
}

Using go test to print out available information.

➜ go test -v -run Show
=== RUN   Test_Show
    cpu_test.go:42: pCore Hz 3504000000
    cpu_test.go:43: eCore Hz 2424000000
    cpu_test.go:44: pCore GHz 3.504
    cpu_test.go:45: eCore GHz 2.424
    cpu_test.go:46: pCore count 8
    cpu_test.go:47: eCoreCount 4
    cpu_test.go:50: pCore Caches 196608 131072 16777216
    cpu_test.go:53: eCore Caches 131072 65536 4194304
--- PASS: Test_Show (0.00s)

License

Open source under the MPL

About

Library for inspecting Apple Silicon CPUs in Go

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 96.5%
  • HCL 2.0%
  • Makefile 1.5%