cpu-benchmark: add tabulate
This commit is contained in:
@@ -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
|
||||
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)
|
||||
|
||||
subprocess.run('neofetch')
|
||||
R, G, B, W = (f'\x1b[{x}m' for x in (31, 32, 34, 0))
|
||||
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))
|
||||
Reference in New Issue
Block a user