first commit
This commit is contained in:
26
transports/bifrost-http/handlers/devpprof_unix.go
Normal file
26
transports/bifrost-http/handlers/devpprof_unix.go
Normal file
@@ -0,0 +1,26 @@
|
||||
//go:build dev && !windows
|
||||
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"time"
|
||||
)
|
||||
|
||||
// getCPUSample gets the current CPU time sample using syscall
|
||||
func getCPUSample() cpuSample {
|
||||
var rusage syscall.Rusage
|
||||
if err := syscall.Getrusage(syscall.RUSAGE_SELF, &rusage); err != nil {
|
||||
return cpuSample{timestamp: time.Now()}
|
||||
}
|
||||
|
||||
userTime := time.Duration(rusage.Utime.Sec)*time.Second + time.Duration(rusage.Utime.Usec)*time.Microsecond
|
||||
systemTime := time.Duration(rusage.Stime.Sec)*time.Second + time.Duration(rusage.Stime.Usec)*time.Microsecond
|
||||
|
||||
return cpuSample{
|
||||
timestamp: time.Now(),
|
||||
userTime: userTime,
|
||||
systemTime: systemTime,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user