Testing for linux cpuinfo
This commit is contained in:
1 parent
cbc9e4a0b4
commit
ea5e79a46a
8 files changed
+172
-20
No files matched your search
@@ -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
|
||||
}
|
||||
Reference in new issue
Block a user