| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/usr/bin/env python3
- # Usage: ./wasm_parser
- # Be sure that the uploaded_log file is in the current directory
- import os
- import re
- import subprocess
- import statistics
- import sys
- protocol = None
- protocol_map = {
- 'blockage-migration': 'Blockage Migration',
- 'check-blockage': 'Check Blockage',
- 'issue-invite': 'Issue Invite',
- 'level-up': 'Level Up',
- 'migration': 'Trust Migration',
- 'open-invite': 'Open Invitation',
- 'redeem-invite': 'Redeem Invite',
- 'trust-promo': 'Trust Promotion',
- 'update-cred': 'Update Credential',
- 'update-invite': 'Update Invite',
- }
- req_time = {}
- handle_time = {}
- inv = {}
- time = {}
- std = {}
- def parse_files(log):
- for line in log:
- if matched := re.match(r'Dump buffer:\s+\".*?(\S+) client (request|handle reply) time ([\d\.]+)\s*ms', line):
- protocol = protocol_map[matched.group(1)]
- val = matched.group(3)
- if matched.group(2) == "request":
- if protocol in req_time:
- req_time[protocol].append(float(val))
- else:
- req_time.setdefault(protocol, []).append(float(val))
- else:
- if protocol in handle_time:
- handle_time[protocol].append(float(val))
- else:
- handle_time.setdefault(protocol, []).append(float(val))
- for protocol in req_time:
- inv[protocol] = list(map(lambda x, y: x + y, handle_time[protocol], req_time[protocol]))
- time[protocol] = sum(inv[protocol])/len(req_time[protocol])
- std[protocol] = statistics.stdev(inv[protocol])
- with open("uploaded_log", "r") as uploaded:
- parse_files(uploaded)
- # The order in which we output the protocols
- protocol_list = [
- 'Open Invitation',
- 'Trust Promotion',
- 'Trust Migration',
- 'Level Up',
- 'Issue Invite',
- 'Redeem Invite',
- 'Check Blockage',
- 'Blockage Migration',
- 'Update Invite',
- 'Update Credential',
- ]
- print("\n=== Table 2 ===\n")
- print("protocol,client wasm ms")
- for p in protocol_list:
- print(f"{p},{time[p]:.3f} ({std[p]:.3f})")
|