ads1_2021/code/golang/internal/core/metrics/metrics.go

51 lines
1.0 KiB
Go

package metrics
/* ---------------------------------------------------------------- *
* IMPORTS
* ---------------------------------------------------------------- */
import (
"time"
"ads/internal/types"
)
/* ---------------------------------------------------------------- *
* GLOBAL VARIABLES/CONSTANTS
* ---------------------------------------------------------------- */
var _ctr_time = types.NewCounter()
var _ctr_space = types.NewCounter()
var _tmr = types.NewTimer()
/* ---------------------------------------------------------------- *
* METHODS
* ---------------------------------------------------------------- */
func RestartMetrics() {
_tmr.Reset()
_ctr_time.Reset()
_ctr_space.Reset()
}
func AddTimeCost(options ...int) {
_ctr_time.Add(options...)
}
func AddSpaceCost(options ...int) {
_ctr_space.Add(options...)
}
func GetTimeCost() int {
return _ctr_time.Size()
}
func GetSpaceCost() int {
return _ctr_space.Size()
}
func GetTimeElapsed() time.Duration {
_tmr.Stop()
return _tmr.ElapsedTime()
}