openssl-static
This commit is contained in:
parent
76c1b9c08c
commit
3ef86c3593
3 changed files with 130 additions and 92 deletions
83
plots.py
83
plots.py
|
|
@ -48,7 +48,7 @@ COL = {
|
|||
"cert": "alg",
|
||||
"kex": "kex",
|
||||
"ed": "ed",
|
||||
"side": "setup",
|
||||
"side": "side",
|
||||
"record": "record",
|
||||
}
|
||||
# Physical units by object
|
||||
|
|
@ -225,16 +225,18 @@ def make_log_plot(logs, exp, criterion, side, obj, record, machine=None, version
|
|||
|
||||
for log in logs:
|
||||
if log["exp"] == exp and log["record"] == record and log["side"] == side:
|
||||
#ver = VER_LABEL[log["cipher"]]
|
||||
#if log[COL[criterion]]+"/"+ver not in ciphers:
|
||||
# ciphers[log[COL[criterion]]+"/"+ver] = {}
|
||||
#ciphers[log[COL[criterion]]+"/"+ver][log["impl"]] = float(log[COL[obj]]) - idle_val * float(log["time"])
|
||||
if version != None and VER_LABEL[log["cipher"]] != version:
|
||||
continue
|
||||
if log[COL[criterion]] not in ciphers:
|
||||
ciphers[log[COL[criterion]]] = {}
|
||||
n = float(log.get("n", "1000"))
|
||||
ciphers[log[COL[criterion]]][log["impl"]] = (float(log[COL[obj]]) * conv_factor - idle_val * float(log["time"])) / n
|
||||
if version == None:
|
||||
ver = VER_LABEL[log["cipher"]]
|
||||
if log[COL[criterion]]+"/"+ver not in ciphers:
|
||||
ciphers[log[COL[criterion]]+"/"+ver] = {}
|
||||
ciphers[log[COL[criterion]]+"/"+ver][log["impl"]] = (float(log[COL[obj]]) * conv_factor - idle_val * float(log["time"])) / n
|
||||
else:
|
||||
if log[COL[criterion]] not in ciphers:
|
||||
ciphers[log[COL[criterion]]] = {}
|
||||
ciphers[log[COL[criterion]]][log["impl"]] = (float(log[COL[obj]]) * conv_factor - idle_val * float(log["time"])) / n
|
||||
if log["impl"] not in impls:
|
||||
impls.append(log["impl"])
|
||||
impls.sort()
|
||||
|
|
@ -244,22 +246,24 @@ def make_log_plot(logs, exp, criterion, side, obj, record, machine=None, version
|
|||
for impl in impls:
|
||||
if impl not in ciphers[cipher]:
|
||||
ciphers[cipher][impl] = 0
|
||||
#cipher_parts = cipher.split("/")
|
||||
#f.write("{}({}) - {}\n".format(
|
||||
# ALG_LABEL[cipher_parts[0]],
|
||||
# cipher_parts[1],
|
||||
# " ".join([
|
||||
# str(ciphers[cipher][impl])
|
||||
# for impl in impls
|
||||
# ]),
|
||||
#))
|
||||
f.write("{} - {}\n".format(
|
||||
ALG_LABEL[cipher],
|
||||
" ".join([
|
||||
str(ciphers[cipher][impl])
|
||||
for impl in impls
|
||||
]),
|
||||
))
|
||||
if version == None:
|
||||
cipher_parts = cipher.split("/")
|
||||
f.write("{}({}) - {}\n".format(
|
||||
ALG_LABEL[cipher_parts[0]],
|
||||
cipher_parts[1],
|
||||
" ".join([
|
||||
str(ciphers[cipher][impl])
|
||||
for impl in impls
|
||||
]),
|
||||
))
|
||||
else:
|
||||
f.write("{} - {}\n".format(
|
||||
ALG_LABEL[cipher],
|
||||
" ".join([
|
||||
str(ciphers[cipher][impl])
|
||||
for impl in impls
|
||||
]),
|
||||
))
|
||||
f.close()
|
||||
gnuplot_histogram(
|
||||
object=obj,
|
||||
|
|
@ -392,7 +396,7 @@ def make_profile_plot_grouped(logs, exp, criterion, side, record, group_by, no_f
|
|||
)
|
||||
|
||||
# Are CPU and energy proportional
|
||||
def make_linear_regression(logs):
|
||||
def make_linear_regression(logs, cat="impl"):
|
||||
idle_cpu = None
|
||||
idle_energy = None
|
||||
for log in logs:
|
||||
|
|
@ -410,11 +414,11 @@ def make_linear_regression(logs):
|
|||
sample_energy = float(log["Wh"]) - idle_energy * float(log["time"])
|
||||
samples_cpu["global"].append(sample_cpu)
|
||||
samples_energy["global"].append(sample_energy)
|
||||
if log["impl"] not in samples_cpu:
|
||||
samples_cpu[log["impl"]] = []
|
||||
samples_energy[log["impl"]] = []
|
||||
samples_cpu[log["impl"]].append(sample_cpu)
|
||||
samples_energy[log["impl"]].append(sample_energy)
|
||||
if log[cat] not in samples_cpu:
|
||||
samples_cpu[log[cat]] = []
|
||||
samples_energy[log[cat]] = []
|
||||
samples_cpu[log[cat]].append(sample_cpu)
|
||||
samples_energy[log[cat]].append(sample_energy)
|
||||
print("Pearson correlation coefficients (energy/cpu)")
|
||||
results = {}
|
||||
for impl in samples_cpu:
|
||||
|
|
@ -441,7 +445,7 @@ def cmp_versions(logs, exps, criteria, objs):
|
|||
idle_val = {obj:float(log[COL[obj]]) / float(log["time"]) for obj in objs}
|
||||
|
||||
for log in logs:
|
||||
if log["exp"] not in exps or log["setup"] == "none":
|
||||
if log["exp"] not in exps or log["tls"] == "0":
|
||||
continue
|
||||
ver = VER_LABEL[log["cipher"]]
|
||||
if ver not in ciphers:
|
||||
|
|
@ -510,19 +514,20 @@ if __name__ == "__main__":
|
|||
no_flamegraph = "-f" in sys.argv
|
||||
machine = getargv("-m", None)
|
||||
maketitle = "-t" not in sys.argv
|
||||
version = getargv("-v", None)
|
||||
|
||||
if cmd == "log":
|
||||
for side in ["client", "server"]:
|
||||
for record in records:
|
||||
make_log_plot(logs, "impl-cipher-ver", "cipher", side, "cpu", record, machine=machine, maketitle=maketitle, version="1.3")
|
||||
make_log_plot(logs, "impl-cipher-ver", "cipher", side, "energy", record, machine=machine, maketitle=maketitle, version="1.3")
|
||||
make_log_plot(logs, "impl-cert-ver", "cert", side, "cpu", record, machine=machine, maketitle=maketitle, version="1.3")
|
||||
make_log_plot(logs, "impl-cert-ver", "cert", side, "energy", record, machine=machine, maketitle=maketitle, version="1.3")
|
||||
make_log_plot(logs, "impl-kex-ver", "kex", side, "cpu", record, machine=machine, maketitle=maketitle, version="1.3")
|
||||
make_log_plot(logs, "impl-kex-ver", "kex", side, "energy", record, machine=machine, maketitle=maketitle, version="1.3")
|
||||
make_log_plot(logs, "impl-cipher-ver", "cipher", side, "cpu", record, machine=machine, maketitle=maketitle, version=version)
|
||||
make_log_plot(logs, "impl-cipher-ver", "cipher", side, "energy", record, machine=machine, maketitle=maketitle, version=version)
|
||||
make_log_plot(logs, "impl-cert-ver", "cert", side, "cpu", record, machine=machine, maketitle=maketitle, version=version)
|
||||
make_log_plot(logs, "impl-cert-ver", "cert", side, "energy", record, machine=machine, maketitle=maketitle, version=version)
|
||||
make_log_plot(logs, "impl-kex-ver", "kex", side, "cpu", record, machine=machine, maketitle=maketitle, version=version)
|
||||
make_log_plot(logs, "impl-kex-ver", "kex", side, "energy", record, machine=machine, maketitle=maketitle, version=version)
|
||||
make_log_plot(logs, "zrtt", "ed", side, "cpu", record, machine=machine, maketitle=maketitle, version="1.3")
|
||||
make_log_plot(logs, "zrtt", "ed", side, "energy", record, machine=machine, maketitle=maketitle, version="1.3")
|
||||
#cmp_versions(logs, ["impl-cipher-ver", "impl-cert-ver", "impl-kex-ver"], ["side", "cipher", "cert", "kex", "record"], ["cpu", "energy"])
|
||||
cmp_versions(logs, ["impl-cipher-ver", "impl-cert-ver", "impl-kex-ver"], ["side", "cipher", "cert", "kex", "record"], ["cpu", "energy"])
|
||||
elif cmd == "prof":
|
||||
for side in ["client", "server"]:
|
||||
for record in records:
|
||||
|
|
@ -536,4 +541,4 @@ if __name__ == "__main__":
|
|||
from scipy import stats
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
make_linear_regression(logs)
|
||||
make_linear_regression(logs, "alg")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue