28
28
29
29
30
30
class ETACalculator :
31
- def __init__ (self , iterations , start_iteration = 0 , buffer_size = 100 ):
31
+ def __init__ (self , iterations , start_iteration = 0 , buffer_size = 500 ):
32
32
self .iterations = iterations
33
33
self .start_iteration = start_iteration
34
34
self .buffer_size = buffer_size
35
35
self .start_time = 0
36
36
self .recent_times = []
37
37
self .recent_iterations = []
38
+ self .warm_up_cnt = 0
39
+ self .warm_up_end = False
38
40
39
41
def start (self ):
40
42
self .start_time = perf_counter ()
41
43
self .recent_times .append (self .start_time )
42
44
self .recent_iterations .append (self .start_iteration )
45
+ self .warm_up_cnt = 0
46
+ self .warm_up_end = False
43
47
44
48
def end (self ):
45
49
avg_ips = float (self .iterations - self .start_iteration ) / (perf_counter () - self .start_time )
@@ -53,10 +57,17 @@ def reset(self):
53
57
def update_buffer (self , iteration_count ):
54
58
self .recent_times .append (perf_counter ())
55
59
self .recent_iterations .append (iteration_count )
56
- if len (self .recent_times ) > self .buffer_size :
57
- self .recent_times .pop (0 )
58
- if len (self .recent_iterations ) > self .buffer_size :
59
- self .recent_iterations .pop (0 )
60
+ if self .warm_up_end :
61
+ if len (self .recent_times ) > self .buffer_size :
62
+ self .recent_times .pop (0 )
63
+ self .recent_iterations .pop (0 )
64
+ else :
65
+ if len (self .recent_times ) > 2 :
66
+ self .recent_times .pop (0 )
67
+ self .recent_iterations .pop (0 )
68
+ self .warm_up_cnt += 1
69
+ if self .warm_up_cnt == 3 :
70
+ self .warm_up_end = True
60
71
61
72
def convert_to_time_str (self , total_sec ):
62
73
times = []
0 commit comments