blob: 11c0b51e4fcda09d5a576a38dd0d7cd5319ddde6 [file] [log] [blame]
import sys
import matplotlib.pyplot as plt
import numpy as np
def generate_graph(path, case_name):
dataset = {
'build_num': [],
'master_version': [],
'master_xa': [],
'4.1.1_version': [],
'3.0.0_version': [],
'mysql_server': []
}
with open(path + '/.build_number.txt') as builds:
for line in builds:
dataset['build_num'].append(int(line))
generate_data(path, case_name, dataset)
print(dataset)
fig, ax = plt.subplots()
ax.grid(True)
plt.title(case_name)
data = [dataset['master_version'][-7:], dataset['master_xa'][-7:], dataset['4.1.1_version'][-7:], dataset['3.0.0_version'][-7:], dataset['mysql_server'][-7:]]
columns = dataset['build_num'][-7:]
rows = ['master', 'xa', '4.1.1', '3.0.0', 'mysql']
rcolors = plt.cm.BuPu(np.full(len(rows), 0.1))
ccolors = plt.cm.BuPu(np.full(len(columns), 0.1))
the_table = plt.table(cellText=data, rowLabels=rows, colLabels=columns, rowColours=rcolors, colColours=ccolors,
loc='bottom', bbox=[0.0, -0.50, 1, .28])
plt.subplots_adjust(left=0.15, bottom=0.3, right=0.98)
plt.xticks(range(14))
ax.set_xticklabels(dataset['build_num'])
plt.plot(dataset['master_version'], 'o-', color='magenta', label='master_version')
plt.plot(dataset['master_xa'], 'o-', color='darkviolet', label='master_xa')
plt.plot(dataset['4.1.1_version'], 'r--', color='blue', label='4.1.1_version')
plt.plot(dataset['3.0.0_version'], 'r--', color='orange', label='3.0.0_version')
plt.plot(dataset['mysql_server'], 'r--', color='lime', label='mysql_server')
plt.xlim()
plt.legend()
plt.xlabel('build_num')
plt.ylabel('transactions per second')
plt.savefig('graph/' + path + '/' + case_name)
plt.show()
def generate_data(path, case_name, dataset):
for build in dataset['build_num']:
fill_dataset(build, case_name, dataset, path, 'master_version', '.master.txt')
fill_dataset(build, case_name, dataset, path, 'master_xa', '.xa.txt')
fill_dataset(build, case_name, dataset, path, '4.1.1_version', '.4_1_1.txt')
fill_dataset(build, case_name, dataset, path, '3.0.0_version', '.3_0_0.txt')
fill_dataset(build, case_name, dataset, path, 'mysql_server', '.mysql.txt')
def fill_dataset(build, case_name, dataset, path, version, suffix):
try:
with open(path + '/' + str(build) + '/' + case_name + suffix) as version_master:
value = 0
for line in version_master:
if 'transactions:' in line:
items = line.split('(')
value = float(items[1][:-10])
dataset[version].append(value)
except FileNotFoundError:
dataset[version].append(0)
if __name__ == '__main__':
path = sys.argv[1]
generate_graph(path, 'oltp_point_select')
generate_graph(path, 'oltp_read_only')
generate_graph(path, 'oltp_write_only')
generate_graph(path, 'oltp_readwrite')
generate_graph(path, 'oltp_update_index')
generate_graph(path, 'oltp_update_non_index')
generate_graph(path, 'oltp_delete')