-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 666d1a8
Showing
1,858 changed files
with
142,978 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
#!/usr/bin/python | ||
|
||
from os import path | ||
import json | ||
from io import StringIO | ||
|
||
archs = "x86_64".split() | ||
impls = "aws-lc-rs dalek ring graviola rustcrypto".split() | ||
which = { | ||
("rsa2048-pkcs1-sha256-verify",): { | ||
"name": "RSA2048 signature verification", | ||
"format": lambda v: "{:,g} sigs/sec".format(v), | ||
}, | ||
("rsa2048-pkcs1-sha256-sign",): { | ||
"name": "RSA2048 signing", | ||
"format": lambda v: "{:,g} sigs/sec".format(v), | ||
}, | ||
("x25519-ecdh",): { | ||
"name": "X25519 key agreement", | ||
"format": lambda v: "{:,g} kx/sec".format(v), | ||
}, | ||
("aes256-gcm", "16KB"): { | ||
"name": "AES256-GCM encryption (16KB wide)", | ||
"format": lambda v: "%.03g GiB/sec" % (v * 16384 / (1024 * 1024 * 1024)), | ||
}, | ||
} | ||
|
||
results = [] | ||
|
||
for arch in sorted(archs): | ||
for wkey, wdesc in sorted(which.items()): | ||
if len(wkey) > 1: | ||
wkey, wsize = wkey | ||
else: | ||
(wkey,) = wkey | ||
wsize = None | ||
|
||
for impl in sorted(impls): | ||
filename = path.join( | ||
"reports", | ||
arch, | ||
wkey, | ||
impl, | ||
wsize + "/new" if wsize else "new", | ||
"estimates.json", | ||
) | ||
if not path.exists(filename): | ||
continue | ||
data = json.load(open(filename)) | ||
value = data["median"]["point_estimate"] | ||
|
||
results.append((wdesc, arch, impl, value)) | ||
|
||
tree = {} | ||
for desc, arch, impl, value in results: | ||
time = value * 1e-9 | ||
rate = 1 / time | ||
value = desc["format"](rate) | ||
tree.setdefault(arch, {}).setdefault(desc["name"], {})[impl] = value | ||
|
||
fragment = StringIO() | ||
for arch, descs in sorted(tree.items()): | ||
print("<h2>{}</h2>".format(arch), file=fragment) | ||
for desc, impls in sorted(descs.items()): | ||
print("<h3>{}</h3><table width='80%'><tr>".format(desc), file=fragment) | ||
|
||
for impl in sorted(impls.keys()): | ||
print("<th align='left'>{}</th>".format(impl), file=fragment) | ||
print("</tr><tr>", file=fragment) | ||
|
||
for impl in sorted(impls.keys()): | ||
print("<td class='measure impl-{}'><big>{}</big></td>".format(impls[impl]), file=fragment) | ||
print("</tr></table>", file=fragment) | ||
|
||
|
||
html = open("index.html").readlines() | ||
out = open("index.html.new", "w") | ||
|
||
skipping = False | ||
for line in html: | ||
if not skipping: | ||
out.write(line) | ||
|
||
if line == "<!-- begin headlines -->\n": | ||
skipping = True | ||
out.write(fragment.getvalue()) | ||
if skipping and line == "<!-- end headlines -->\n": | ||
skipping = False | ||
out.write(line) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
<html> | ||
<head> | ||
<title>Graviola Benchmarking Results</title> | ||
</head> | ||
<body> | ||
<h1>Graviola Benchmarking Results</h1> | ||
|
||
<p>At the moment benchmarking is non-automated, and is run on two of my laptops. See <a href="#reports">below</a>. | ||
|
||
<h2>Headlines</h2> | ||
|
||
These categories are chosen as being typically used for TLS traffic on the web. | ||
|
||
<!-- begin headlines --> | ||
<h2>x86_64</h2> | ||
<h3>AES256-GCM encryption (16KB wide)</h3><table width='80%'><tr> | ||
<th align='left'>aws-lc-rs</th> | ||
<th align='left'>graviola</th> | ||
<th align='left'>ring</th> | ||
<th align='left'>rustcrypto</th> | ||
</tr><tr> | ||
<td><big>10.6 GiB/sec</big></td> | ||
<td><big>3.35 GiB/sec</big></td> | ||
<td><big>5.2 GiB/sec</big></td> | ||
<td><big>1.78 GiB/sec</big></td> | ||
</tr></table> | ||
<h3>RSA2048 signature verification</h3><table width='80%'><tr> | ||
<th align='left'>aws-lc-rs</th> | ||
<th align='left'>graviola</th> | ||
<th align='left'>ring</th> | ||
<th align='left'>rustcrypto</th> | ||
</tr><tr> | ||
<td><big>76,401 sigs/sec</big></td> | ||
<td><big>82,028.8 sigs/sec</big></td> | ||
<td><big>63,589 sigs/sec</big></td> | ||
<td><big>7,339.84 sigs/sec</big></td> | ||
</tr></table> | ||
<h3>RSA2048 signing</h3><table width='80%'><tr> | ||
<th align='left'>aws-lc-rs</th> | ||
<th align='left'>graviola</th> | ||
<th align='left'>ring</th> | ||
<th align='left'>rustcrypto</th> | ||
</tr><tr> | ||
<td><big>2,297.85 sigs/sec</big></td> | ||
<td><big>2,026.79 sigs/sec</big></td> | ||
<td><big>2,359.52 sigs/sec</big></td> | ||
<td><big>857.161 sigs/sec</big></td> | ||
</tr></table> | ||
<h3>X25519 key agreement</h3><table width='80%'><tr> | ||
<th align='left'>aws-lc-rs</th> | ||
<th align='left'>dalek</th> | ||
<th align='left'>graviola</th> | ||
<th align='left'>ring</th> | ||
</tr><tr> | ||
<td><big>42,610.5 kx/sec</big></td> | ||
<td><big>19,948.8 kx/sec</big></td> | ||
<td><big>42,061.3 kx/sec</big></td> | ||
<td><big>19,457.1 kx/sec</big></td> | ||
</tr></table> | ||
<!-- end headlines --> | ||
|
||
<h2 name="reports">Full reports</h2> | ||
<ul> | ||
<li> <a href="reports/x86_64/report/index.html">Framework 16 with AMD Ryzen 9 7940HS CPU</a> | ||
<li> <a href="reports/aarch64/report/index.html">Macbook Pro M2 (2022)</a> | ||
</ul> | ||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
|
||
<head> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||
<title>aes128-gcm/16KB Summary - Criterion.rs</title> | ||
<style type="text/css"> | ||
body { | ||
font: 14px Helvetica Neue; | ||
text-rendering: optimizelegibility; | ||
} | ||
|
||
.body { | ||
width: 960px; | ||
margin: auto; | ||
} | ||
|
||
a:link { | ||
color: #1F78B4; | ||
text-decoration: none; | ||
} | ||
|
||
h2 { | ||
font-size: 36px; | ||
font-weight: 300; | ||
} | ||
|
||
h3 { | ||
font-size: 24px; | ||
font-weight: 300; | ||
} | ||
|
||
#footer { | ||
height: 40px; | ||
background: #888; | ||
color: white; | ||
font-size: larger; | ||
font-weight: 300; | ||
} | ||
|
||
#footer a { | ||
color: white; | ||
text-decoration: underline; | ||
} | ||
|
||
#footer p { | ||
text-align: center | ||
} | ||
</style> | ||
</head> | ||
|
||
<body> | ||
<div class="body"> | ||
<h2>aes128-gcm/16KB</h2> | ||
<h3>Violin Plot</h3> | ||
<a href="violin.svg"> | ||
<img src="violin.svg" alt="Violin Plot" /> | ||
</a> | ||
<p>This chart shows the relationship between function/parameter and iteration time. The thickness of the shaded | ||
region indicates the probability that a measurement of the given function/parameter would take a particular | ||
length of time.</p> | ||
<section class="plots"> | ||
<a href="../../../aes128-gcm/ring/16KB/report/index.html"> | ||
<h4>aes128-gcm/ring/16KB</h4> | ||
</a> | ||
<table width="100%"> | ||
<tbody> | ||
<tr> | ||
<td> | ||
<a href="../../../aes128-gcm/ring/16KB/report/pdf.svg"> | ||
<img src="../../../aes128-gcm/ring/16KB/report/pdf_small.svg" alt="PDF of Slope" width="450" | ||
height="300" /> | ||
</a> | ||
</td> | ||
<td> | ||
<a href="../../../aes128-gcm/ring/16KB/report/regression.svg"> | ||
<img src="../../../aes128-gcm/ring/16KB/report/regression_small.svg" alt="Regression" width="450" | ||
height="300" /> | ||
</a> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</section> | ||
<section class="plots"> | ||
<a href="../../../aes128-gcm/aws-lc-rs/16KB/report/index.html"> | ||
<h4>aes128-gcm/aws-lc-rs/16KB</h4> | ||
</a> | ||
<table width="100%"> | ||
<tbody> | ||
<tr> | ||
<td> | ||
<a href="../../../aes128-gcm/aws-lc-rs/16KB/report/pdf.svg"> | ||
<img src="../../../aes128-gcm/aws-lc-rs/16KB/report/pdf_small.svg" alt="PDF of Slope" width="450" | ||
height="300" /> | ||
</a> | ||
</td> | ||
<td> | ||
<a href="../../../aes128-gcm/aws-lc-rs/16KB/report/regression.svg"> | ||
<img src="../../../aes128-gcm/aws-lc-rs/16KB/report/regression_small.svg" alt="Regression" width="450" | ||
height="300" /> | ||
</a> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</section> | ||
<section class="plots"> | ||
<a href="../../../aes128-gcm/rustcrypto/16KB/report/index.html"> | ||
<h4>aes128-gcm/rustcrypto/16KB</h4> | ||
</a> | ||
<table width="100%"> | ||
<tbody> | ||
<tr> | ||
<td> | ||
<a href="../../../aes128-gcm/rustcrypto/16KB/report/pdf.svg"> | ||
<img src="../../../aes128-gcm/rustcrypto/16KB/report/pdf_small.svg" alt="PDF of Slope" width="450" | ||
height="300" /> | ||
</a> | ||
</td> | ||
<td> | ||
<a href="../../../aes128-gcm/rustcrypto/16KB/report/regression.svg"> | ||
<img src="../../../aes128-gcm/rustcrypto/16KB/report/regression_small.svg" alt="Regression" width="450" | ||
height="300" /> | ||
</a> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</section> | ||
<section class="plots"> | ||
<a href="../../../aes128-gcm/graviola/16KB/report/index.html"> | ||
<h4>aes128-gcm/graviola/16KB</h4> | ||
</a> | ||
<table width="100%"> | ||
<tbody> | ||
<tr> | ||
<td> | ||
<a href="../../../aes128-gcm/graviola/16KB/report/pdf.svg"> | ||
<img src="../../../aes128-gcm/graviola/16KB/report/pdf_small.svg" alt="PDF of Slope" width="450" | ||
height="300" /> | ||
</a> | ||
</td> | ||
<td> | ||
<a href="../../../aes128-gcm/graviola/16KB/report/regression.svg"> | ||
<img src="../../../aes128-gcm/graviola/16KB/report/regression_small.svg" alt="Regression" width="450" | ||
height="300" /> | ||
</a> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</section> | ||
</div> | ||
<div id="footer"> | ||
<p>This report was generated by | ||
<a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking | ||
library in Rust.</p> | ||
</div> | ||
</body> | ||
|
||
</html> |
Oops, something went wrong.