19 lines
426 B
Go
19 lines
426 B
Go
//go:build unix
|
|
|
|
package api
|
|
|
|
import (
|
|
"syscall"
|
|
"time"
|
|
)
|
|
|
|
// processCPUTime 返回进程自启动累计的 CPU 时间(用户态 + 内核态);
|
|
// 取不到时返回 0,「关于」页 CPU 均值显示为 0 而非报错。
|
|
func processCPUTime() time.Duration {
|
|
var ru syscall.Rusage
|
|
if err := syscall.Getrusage(syscall.RUSAGE_SELF, &ru); err != nil {
|
|
return 0
|
|
}
|
|
return time.Duration(ru.Utime.Nano() + ru.Stime.Nano())
|
|
}
|