33 lines
No EOL
582 B
Go
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))
|
|
} |