Testing for linux cpuinfo

This commit is contained in:
lin committed 2026-10-05 18:19:36 +02:00
1 parent cbc9e4a0b4
commit ea5e79a46a
8 files changed
+172 -20

No files matched your search

+34
View File
@@ -0,0 +1,34 @@
package processor
import "time"
type ProcessorInformation struct {
IdleTimeSinceBoot uint64
KernelTimeSinceBoot uint64
UserTimeSinceBoot uint64
}
func (procInfo ProcessorInformation) Usage() (
TotalCPUUsage float64,
KernelCPUUsage float64,
UserCPUUsage float64,
IdleCPUUsage float64,
) {
first := GetCPUInformation()
time.Sleep(time.Second)
second := GetCPUInformation()
deltaIdleTime := second.IdleTimeSinceBoot - first.IdleTimeSinceBoot
deltaKernelTime := second.KernelTimeSinceBoot - first.KernelTimeSinceBoot
deltaUserTime := second.UserTimeSinceBoot - first.UserTimeSinceBoot
deltaTotalTime := deltaIdleTime + deltaKernelTime + deltaUserTime
if deltaTotalTime > 0 {
TotalCPUUsage = ((float64(deltaKernelTime) + float64(deltaUserTime)) / float64(deltaTotalTime)) * 100
UserCPUUsage = (float64(deltaUserTime) / float64(deltaTotalTime)) * 100
KernelCPUUsage = (float64(deltaKernelTime) / float64(deltaTotalTime)) * 100
IdleCPUUsage = (float64(deltaIdleTime) / float64(deltaTotalTime)) * 100
}
return TotalCPUUsage, KernelCPUUsage, UserCPUUsage, IdleCPUUsage
}