openreplay/backend/pkg/messages/performance/performance.go
2021-05-03 17:53:25 +02:00

33 lines
No EOL
582 B
Go

package performance
import (
"math"
)
func TimeDiff(t1 uint64, t2 uint64) uint64 {
if t1 < t2 {
return 0
}
return t1 - t2
}
func FrameRate(frames int64, dt uint64) float64 {
return float64(frames) * 1000 / float64(dt)
}
func TickRate(ticks int64, dt uint64) float64 {
tickRate := float64(ticks) * 30 / float64(dt)
if tickRate > 1 {
tickRate = 1
}
return tickRate
}
func CPURateFromTickRate(tickRate float64) uint64 {
return 100 - uint64(math.Round(tickRate*100))
}
func CPURate(ticks int64, dt uint64) uint64 {
return CPURateFromTickRate(TickRate(ticks, dt))
}