results/show.py

127 lines
3.0 KiB
Python

import os
import sys
import numpy as np
import plotly.graph_objects as go
from scipy.interpolate import interp1d
thread = []
fork = []
read = []
write = []
mmap_munmap = []
send = []
recv = []
page_fault = []
configs = []
headerColor = 'grey'
rowEvenColor = 'lightgrey'
rowOddColor = 'white'
colors = [
'rgb(63, 255, 63)',
'rgb(191, 255, 63)',
'rgb(223, 255, 63)',
'rgb(255, 255, 63)',
'rgb(255, 191, 63)',
'rgb(255, 127, 63)',
'rgb(255, 63, 63)',
]
for filename in sorted(os.listdir(sys.argv[1])):
configs.append(filename[:-4])
with open(os.path.join(sys.argv[1], filename)) as f:
content = f.readlines()
new_dict = dict()
for line in content[1:]:
new_dict[line.split(',')[0]] = int(line.split(',')[2])
thread.append(int(new_dict['thread'] / 1000))
fork.append(int(new_dict['fork'] / 1000))
read.append(int(new_dict['read'] / 1000))
write.append(int(new_dict['write'] / 1000))
mmap_munmap.append(int(new_dict['mmap_munmap'] / 1000))
send.append(int(new_dict['send'] / 1000))
recv.append(int(new_dict['recv'] / 1000))
page_fault.append(int(new_dict['page_fault'] / 1000))
threadcolorfilter = interp1d([min(thread), max(thread)], [0, 6])
threadcolor = [int(threadcolorfilter(x)) for x in thread]
forkcolorfilter = interp1d([min(fork), max(fork)], [0, 6])
forkcolor = [int(forkcolorfilter(x)) for x in fork]
readcolorfilter = interp1d([min(read), max(read)], [0, 6])
readcolor = [int(readcolorfilter(x)) for x in read]
writecolorfilter = interp1d([min(write), max(write)], [0, 6])
writecolor = [int(writecolorfilter(x)) for x in write]
mmap_munmapcolorfilter = interp1d([min(mmap_munmap), max(mmap_munmap)], [0, 6])
mmap_munmapcolor = [int(mmap_munmapcolorfilter(x)) for x in mmap_munmap]
sendcolorfilter = interp1d([min(send), max(send)], [0, 6])
sendcolor = [int(sendcolorfilter(x)) for x in send]
recvcolorfilter = interp1d([min(recv), max(recv)], [0, 6])
recvcolor = [int(recvcolorfilter(x)) for x in recv]
page_faultcolorfilter = interp1d([min(page_fault), max(page_fault)], [0, 6])
page_faultcolor = [int(page_faultcolorfilter(x)) for x in page_fault]
fig = go.Figure(
data=[go.Table(
columnorder=[1, 2, 3, 4, 5, 6, 7, 8, 9],
columnwidth=[7, 2, 2, 2, 2, 3, 2, 2, 2],
header=dict(
values=[
"config",
"thread",
"fork",
"read",
"write",
"mmap_munmap",
"send",
"recv",
"page_fault"
],
line_color='darkslategray',
fill_color=headerColor,
align=['left', 'center'],
font=dict(color='white', size=13)
),
cells=dict(
values=[
configs,
thread,
fork,
read,
write,
mmap_munmap,
send,
recv,
page_fault,
],
line_color='darkslategray',
fill_color=[
rowOddColor,
np.array(colors)[threadcolor],
np.array(colors)[forkcolor],
np.array(colors)[readcolor],
np.array(colors)[writecolor],
np.array(colors)[mmap_munmapcolor],
np.array(colors)[sendcolor],
np.array(colors)[recvcolor],
np.array(colors)[page_faultcolor],
],
align=['left', 'center'],
font=dict(color='darkslategray', size=13)
)
)]
)
fig.show()