Spaces:
Configuration error
Configuration error
| package xsysinfo | |
| import ( | |
| "sort" | |
| "github.com/jaypipes/ghw" | |
| "github.com/klauspost/cpuid/v2" | |
| ) | |
| func CPUCapabilities() ([]string, error) { | |
| cpu, err := ghw.CPU() | |
| if err != nil { | |
| return nil, err | |
| } | |
| caps := map[string]struct{}{} | |
| for _, proc := range cpu.Processors { | |
| for _, c := range proc.Capabilities { | |
| caps[c] = struct{}{} | |
| } | |
| } | |
| ret := []string{} | |
| for c := range caps { | |
| ret = append(ret, c) | |
| } | |
| // order | |
| sort.Strings(ret) | |
| return ret, nil | |
| } | |
| func HasCPUCaps(ids ...cpuid.FeatureID) bool { | |
| return cpuid.CPU.Supports(ids...) | |
| } | |
| func CPUPhysicalCores() int { | |
| if cpuid.CPU.PhysicalCores == 0 { | |
| return 1 | |
| } | |
| return cpuid.CPU.PhysicalCores | |
| } | |