![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/lib/node_modules/mediasoup/worker/deps/catch/scripts/ |
Upload File : |
#!/usr/bin/env python3 import subprocess, os, sys import xml.etree.ElementTree as ET from collections import defaultdict from statistics import median, stdev from datetime import datetime def get_commit_hash(): res = subprocess.run('git rev-parse HEAD'.split(), check=True, stdout=subprocess.PIPE, universal_newlines=True) return res.stdout.strip() if len(sys.argv) < 2: print('Usage: {} benchmark-binary'.format(sys.argv[0])) exit(1) num_runs = 10 data = defaultdict(list) def parse_file(file): def recursive_search(node): if node.tag == 'TestCase': results = node.find('OverallResult') time = results.get('durationInSeconds') data[node.get('name')].append(float(time)) elif node.tag in ('Group', 'Catch'): for child in node: recursive_search(child) tree = ET.parse(file) recursive_search(tree.getroot()) def run_benchmarks(binary): call = [binary] + '-d yes -r xml -o'.split() for i in range(num_runs): file = 'temp{}.xml'.format(i) print('Run number {}'.format(i)) subprocess.run(call + [file]) parse_file(file) # Remove file right after parsing, because benchmark output can be big os.remove(file) # Run benchmarks run_benchmarks(sys.argv[1]) result_file = '{:%Y-%m-%dT%H-%M-%S}-{}.result'.format(datetime.now(), get_commit_hash()) print('Writing results to {}'.format(result_file)) with open(result_file, 'w') as file: for k in sorted(data): file.write('{}: median: {} (s), stddev: {} (s)\n'.format(k, median(data[k]), stdev(data[k])))