mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			648 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			648 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
						|
 | 
						|
package trackers
 | 
						|
 | 
						|
import "time"
 | 
						|
 | 
						|
type tracker struct {
 | 
						|
	label     string
 | 
						|
	startTime time.Time
 | 
						|
}
 | 
						|
 | 
						|
func Begin(label string) *tracker {
 | 
						|
	return &tracker{label: label, startTime: time.Now()}
 | 
						|
}
 | 
						|
 | 
						|
func Run(label string, f func()) {
 | 
						|
	var tr = Begin(label)
 | 
						|
	f()
 | 
						|
	tr.End()
 | 
						|
}
 | 
						|
 | 
						|
func (this *tracker) End() {
 | 
						|
	SharedManager.Add(this.label, time.Since(this.startTime).Seconds()*1000)
 | 
						|
}
 | 
						|
 | 
						|
func (this *tracker) Begin(subLabel string) *tracker {
 | 
						|
	return Begin(this.label + ":" + subLabel)
 | 
						|
}
 | 
						|
 | 
						|
func (this *tracker) Add(duration time.Duration) {
 | 
						|
	this.startTime = this.startTime.Add(-duration)
 | 
						|
}
 |