diff --git a/scripts/deltams.py b/scripts/deltams.py index cac13fe..2741344 100755 --- a/scripts/deltams.py +++ b/scripts/deltams.py @@ -1,31 +1,34 @@ #!/usr/bin/python3 import sys,re -owd = f"./out/{sys.argv[1]}/log/server-udpecho-stdout.log" -rtt = f"./out/{sys.argv[1]}/res/{sys.argv[2]}.csv" +print("run,packet_id,measure_type,latency,latency_ms") +for i in range(1,len(sys.argv)): + path = sys.argv[i] + client_server = f"{sys.argv[1]}/log/server-measlat-stdout.log" + server_client = f"{sys.argv[1]}/log/client-measlat-stdout.log" + run = path -agg = {} -last_pkt = 0 + agg = {} + with open(client_server, 'r') as f: + for line in f: + res = re.match(r".*Packet (\d+) latency (\d+)µs", line) + if not res: continue + pkt_id,lat = res.groups() + pkt_id,lat = int(pkt_id), int(lat) + agg[pkt_id] = {"client_server": lat } -with open(owd, 'r') as f: - for line in f: - res = re.match(r".*Packet (\d+) latency (\d+)µs", line) - if not res: continue - pkt_id,lat = res.groups() - pkt_id,lat = int(pkt_id), int(lat) - agg[pkt_id] = {"owd": lat } + with open(server_client, 'r') as f: + for line in f: + res = re.match(r".*Packet (\d+) latency (\d+)µs", line) + if not res: continue + pkt_id,lat = res.groups() + pkt_id,lat = int(pkt_id), int(lat) + if not pkt_id in agg: agg[pkt_id] = {} + agg[pkt_id]["server_client"] = lat -with open(rtt, 'r') as f: - for line in f: - res = re.match(r".*Packet (\d+) latency (\d+)µs", line) - if not res: continue - pkt_id,lat = res.groups() - pkt_id,lat = int(pkt_id), int(lat) - agg[pkt_id]["rtt"] = lat - last_pkt = pkt_id - -for i in range(last_pkt): - if i not in agg: continue - if "rtt" not in agg[i]: continue - - print(abs((agg[i]["rtt"] - 2*agg[i]["owd"]) / 1000), agg[i]["owd"] / 1000, (agg[i]["rtt"] - agg[i]["owd"]) / 1000, i) + for packet_id, lats in agg.items(): + if "client_server" not in lats or "server_client" not in lats: continue + print(f"{run},{packet_id},client_server,{lats['client_server']},{lats['client_server'] / 1000}") + print(f"{run},{packet_id},server_client,{lats['server_client']},{lats['server_client'] / 1000}") + print(f"{run},{packet_id},delta,{lats['client_server'] - lats['server_client']},{(lats['client_server'] - lats['server_client'])/1000}") + print(f"{run},{packet_id},delta_abs,{abs(lats['client_server'] - lats['server_client'])},{abs(lats['client_server'] - lats['server_client'])/1000}")