github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/system/trace/operate.go (about) 1 package trace 2 3 type operateInfo struct { 4 TimeCost int64 `json:"timeCost"` 5 LastCall int64 `json:"lastCall"` 6 started bool 7 } 8 9 func newOperateInfo() *operateInfo { 10 tmp := &operateInfo{ 11 LastCall: getNowTimeMs(), 12 } 13 return tmp 14 } 15 16 func (s *operateInfo) StartOper() { 17 if s.started { 18 panic("wrong state") 19 } 20 s.started = true 21 s.LastCall = getNowTimeMs() 22 } 23 24 func (s *operateInfo) StopOper() { 25 if !s.started { 26 panic("wrong state") 27 } 28 s.started = false 29 callTime := getNowTimeMs() - s.LastCall 30 s.TimeCost += callTime 31 }