diff --git a/debian-cpu-benchmark/bench.py b/debian-cpu-benchmark/bench.py index dd85205..8332a8b 100755 --- a/debian-cpu-benchmark/bench.py +++ b/debian-cpu-benchmark/bench.py @@ -1,32 +1,30 @@ #!/usr/bin/env python -import subprocess, multiprocessing as mp, pandas as pd +import subprocess, multiprocessing as mp, warnings, pandas as pd +from tabulate import tabulate +warnings.filterwarnings("ignore") +R, G, B, W = (f'\x1b[{x}m' for x in (31, 32, 34, 0)) +subprocess.run('neofetch') def speed(core): - try: - output = subprocess.run( - f'sysbench cpu --threads={core} run | grep "events per second"', - shell=True, capture_output=True, text=True).stdout.split()[-1] - return float(output) - except: - print('\n' - 'sudo apt-get update && sudo apt-get install -y sysbench neofetch' - '\tOR' - 'brew install sysbench neofetch' - '\n') - raise - -subprocess.run('neofetch') -R, G, B, W = (f'\x1b[{x}m' for x in (31, 32, 34, 0)) + output = subprocess.run( + f'sysbench cpu --threads={core} run | grep "events per second"', + shell=True, capture_output=True, text=True).stdout.split()[-1] + return float(output) + df = [] -print(f'\t{G}Speed\t\t{B} Speed') -print(f'\t{G}(multicore)\t{B}(per-core)') -for core in range(1, mp.cpu_count()+1): - print(f'{R}Core: {core}', end='') +for core in range(1, mp.cpu_count()+2): s = speed(core) - row = (core, s, s/core) - print(f'\t{G}{int(row[1]):^8}\t{B}{int(row[2]):^8}') + row = { + '#Threads': core, + 'Throughput': s, + '(per-core)': s/core + } df.append(row) -print(W) df = pd.DataFrame(df) df.to_csv('bench.csv', index=False) + +df.iloc[:, 0] = df.iloc[:, 0].apply(lambda s: f'{R}{s}{W}') +df.iloc[:, 1] = df.iloc[:, 1].apply(lambda s: f'{G}{int(s)}{W}') +df.iloc[:, 2] = df.iloc[:, 2].apply(lambda s: f'{B}{int(s)}{W}') +print(tabulate(df, headers='keys', tablefmt='rounded_outline', showindex=False)) \ No newline at end of file