Beispiel #1
0
 def update_averages(self):
     #damage "in" latency: (the time it takes for damage requests to be processed only)
     if len(self.damage_in_latency) > 0:
         data = [(when, latency)
                 for when, _, _, latency in list(self.damage_in_latency)]
         self.avg_damage_in_latency, self.recent_damage_in_latency = calculate_time_weighted_average(
             data)
     #damage "out" latency: (the time it takes for damage requests to be processed and sent out)
     if len(self.damage_out_latency) > 0:
         data = [(when, latency)
                 for when, _, _, latency in list(self.damage_out_latency)]
         self.avg_damage_out_latency, self.recent_damage_out_latency = calculate_time_weighted_average(
             data)
     #client decode speed:
     if len(self.client_decode_time) > 0:
         #the elapsed time recorded is in microseconds, so multiply by 1000*1000 to get the real value:
         self.avg_decode_speed, self.recent_decode_speed = calculate_timesize_weighted_average(
             list(self.client_decode_time), sizeunit=1000 * 1000)
     #network send speed:
     if len(self.damage_send_speed) > 0:
         self.avg_send_speed, self.recent_send_speed = calculate_timesize_weighted_average(
             list(self.damage_send_speed))
     all_l = [
         0.1, self.avg_damage_in_latency, self.recent_damage_in_latency,
         self.avg_damage_out_latency, self.recent_damage_out_latency
     ]
     self.max_latency = max(all_l)
Beispiel #2
0
 def update_averages(self):
     #damage "in" latency: (the time it takes for damage requests to be processed only)
     if len(self.damage_in_latency)>0:
         data = [(when, latency) for when, _, _, latency in list(self.damage_in_latency)]
         self.avg_damage_in_latency, self.recent_damage_in_latency =  calculate_time_weighted_average(data)
     #damage "out" latency: (the time it takes for damage requests to be processed and sent out)
     if len(self.damage_out_latency)>0:
         data = [(when, latency) for when, _, _, latency in list(self.damage_out_latency)]
         self.avg_damage_out_latency, self.recent_damage_out_latency = calculate_time_weighted_average(data)
     #client decode speed:
     if len(self.client_decode_time)>0:
         #the elapsed time recorded is in microseconds, so multiply by 1000*1000 to get the real value:
         self.avg_decode_speed, self.recent_decode_speed = calculate_timesize_weighted_average(list(self.client_decode_time), sizeunit=1000*1000)
     #network send speed:
     if len(self.damage_send_speed)>0:
         self.avg_send_speed, self.recent_send_speed = calculate_timesize_weighted_average(list(self.damage_send_speed))
     all_l = [0.1,
              self.avg_damage_in_latency, self.recent_damage_in_latency,
              self.avg_damage_out_latency, self.recent_damage_out_latency]
     self.max_latency = max(all_l)
Beispiel #3
0
 def get_target_client_latency(self, min_client_latency, avg_client_latency, abs_min=0.010):
     """ geometric mean of the minimum (+20%) and average latency
         but not higher than twice more than the minimum,
         and not lower than abs_min.
         Then we add the average decoding latency.
         """
     decoding_latency = 0.010
     if len(self.client_decode_time)>0:
         decoding_latency, _ = calculate_timesize_weighted_average(list(self.client_decode_time))
         decoding_latency /= 1000.0
     min_latency = max(abs_min, min_client_latency or abs_min)*1.2
     avg_latency = max(min_latency, avg_client_latency or abs_min)
     max_latency = 2.0*min_latency
     return max(abs_min, min(max_latency, sqrt(min_latency*avg_latency))) + decoding_latency
Beispiel #4
0
 def get_target_client_latency(self, min_client_latency, avg_client_latency, abs_min=0.010):
     """ geometric mean of the minimum (+20%) and average latency
         but not higher than twice more than the minimum,
         and not lower than abs_min.
         Then we add the average decoding latency.
         """
     decoding_latency = 0.010
     if len(self.client_decode_time)>0:
         decoding_latency, _ = calculate_timesize_weighted_average(list(self.client_decode_time))
         decoding_latency /= 1000.0
     min_latency = max(abs_min, min_client_latency or abs_min)*1.2
     avg_latency = max(min_latency, avg_client_latency or abs_min)
     max_latency = 2.0*min_latency
     return max(abs_min, min(max_latency, sqrt(min_latency*avg_latency))) + decoding_latency
Beispiel #5
0
def test_calculate_timesize_weighted_average():
	#event_time, size, elapsed_time
	now = time.time()
	sample_size = 100000
	data = []
	t = now - sample_size
	for _ in xrange(sample_size):
		s = random.randint(1000, 10000)
		v = random.random()
		data.append((t, s, v))
		t += 1
	start = time.time()
	v = calculate_timesize_weighted_average(data)
	end = time.time()
	print("test_calculate_timesize_weighted_average(%s records)=%s" % (len(data), v))
	print("elapsed time: %.1fms" % (1000*(end-start)))
Beispiel #6
0
def test_calculate_timesize_weighted_average():
    #event_time, size, elapsed_time
    now = time.time()
    sample_size = 100000
    data = []
    t = now - sample_size
    for _ in xrange(sample_size):
        s = random.randint(1000, 10000)
        v = random.random()
        data.append((t, s, v))
        t += 1
    start = time.time()
    v = calculate_timesize_weighted_average(data)
    end = time.time()
    print("test_calculate_timesize_weighted_average(%s records)=%s" %
          (len(data), v))
    print("elapsed time: %.1fms" % (1000 * (end - start)))