Skip to content

Commit e39df6e

Browse files
committed
chore: include age in benchmark
1 parent a79a6af commit e39df6e

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

benchmark/bench_and_plot.py

+20-15
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
import matplotlib.pyplot as plt
66
from matplotlib.colors import XKCD_COLORS as plot_colors
77

8-
safelock_cmd = "safelock-cli"
8+
safelock_cmd = "~/Projects/safelock-cli/safelock-cli"
99
pwd = "123456789"
1010
rest = "60s"
1111
input_path = "Videos"
1212
output_name = "test"
1313
output_dir = "safelock_dump"
1414
runs = 3
1515
figure_width = 14
16-
figure_height = 3
16+
figure_height = 2.5
1717
bar_width = 0.6
1818
measure = "Seconds"
1919
root = os.getcwd()
@@ -22,8 +22,7 @@ def get_label(i, clean=False, key="command"):
2222
matchers = [
2323
('gpg', 'gpgtar',),
2424
('7z', '7zip (fastest)',),
25-
('256', 'safelock --sha256',),
26-
('512', 'safelock --sha512',),
25+
('age', 'age (tar-zstd)'),
2726
('safelock', 'safelock',),
2827
]
2928
label = next((v for m, v in matchers if m in i[key]))
@@ -39,8 +38,7 @@ def get_name(i):
3938
matchers = [
4039
('gpg', f'{output_name}.gpg',),
4140
('7z', f'{output_name}.7z',),
42-
('256', f'{output_name}_sha256.sla',),
43-
('512', f'{output_name}_sha512.sla',),
41+
('age', f'{output_name}.age'),
4442
('safelock', f'{output_name}.sla',),
4543
]
4644

@@ -51,8 +49,7 @@ def encrypt():
5149
f"hyperfine --runs {runs} --prepare "
5250
f"'sleep {rest}' "
5351
f"'echo \"{pwd}\" | {safelock_cmd} encrypt {input_path} {get_name('safelock')} --quiet' "
54-
f"'echo \"{pwd}\" | {safelock_cmd} encrypt {input_path} {get_name('256')} --quiet --sha256' "
55-
f"'echo \"{pwd}\" | {safelock_cmd} encrypt {input_path} {get_name('512')} --quiet --sha512' "
52+
f"'tar cv --zstd {input_path} | . {root}/pipe_age_password.sh | age -e -p -o {get_name('age')}' "
5653
f"'7z a -p{pwd} -mx1 {get_name('7z')} {input_path}' "
5754
f"'gpgtar -e -o {get_name('gpg')} -c --yes --batch --gpg-args \"--passphrase {pwd}\" {input_path}' "
5855
f"--export-json {root}/encryption.json"
@@ -66,8 +63,7 @@ def decrypt():
6663
f"hyperfine --runs {runs} --prepare "
6764
f"'rm -rf {output_dir} {output_name}_*_ && mkdir {output_dir} && sleep {rest}' "
6865
f"'echo \"{pwd}\" | {safelock_cmd} decrypt {get_name('safelock')} {output_dir} --quiet' "
69-
f"'echo \"{pwd}\" | {safelock_cmd} decrypt {get_name('256')} {output_dir} --quiet --sha256' "
70-
f"'echo \"{pwd}\" | {safelock_cmd} decrypt {get_name('512')} {output_dir} --quiet --sha512' "
66+
f"'sleep 0.05; xdotool type \"{pwd}\"; xdotool key \"Return\" | age --decrypt {get_name('age')} | tar x --zstd -f - -C {output_dir}' "
7167
f"'7z e -y -p{pwd} -mx1 {get_name('7z')} -o{output_dir}' "
7268
f"'gpgtar -d --yes --batch --gpg-args \"--passphrase {pwd}\" {get_name('gpg')}' "
7369
f"--export-json {root}/decryption.json"
@@ -77,8 +73,8 @@ def decrypt():
7773
exit(err)
7874

7975
os.chdir(os.path.expanduser("~"))
80-
encrypt()
81-
decrypt()
76+
# encrypt()
77+
# decrypt()
8278
os.chdir(root)
8379
plt.margins(3.5)
8480

@@ -95,7 +91,10 @@ def decrypt():
9591
fig, ax = plt.subplots()
9692
ax.set_title('Encryption Time')
9793
ax.set_xlabel(measure)
98-
ax.barh(labels, scores, bar_width, color=colors)
94+
ax.yaxis.set_label_position('right')
95+
ax.set_ylabel('lower is better')
96+
ax.grid(zorder=0, axis='x', color='black')
97+
ax.barh(labels, scores, bar_width, color=colors, zorder=3)
9998
fig.set_size_inches(w=figure_width, h=figure_height)
10099
fig.tight_layout()
101100
fig.savefig("encryption-time.webp", transparent=True, format="webp")
@@ -112,7 +111,10 @@ def decrypt():
112111
fig, ax = plt.subplots()
113112
ax.set_title('Decryption Time')
114113
ax.set_xlabel(measure)
115-
ax.barh(labels, decryption, bar_width, color=colors)
114+
ax.yaxis.set_label_position('right')
115+
ax.set_ylabel('lower is better')
116+
ax.grid(zorder=0, axis='x', color='black')
117+
ax.barh(labels, decryption, bar_width, color=colors, zorder=3)
116118
fig.set_size_inches(w=figure_width, h=figure_height)
117119
fig.tight_layout()
118120
fig.savefig("decryption-time.webp", transparent=True, format="webp")
@@ -134,7 +136,10 @@ def decrypt():
134136
fig, ax = plt.subplots()
135137
ax.set_title('File Size')
136138
ax.set_xlabel("Megabytes")
137-
ax.barh(labels, sizes, bar_width, color=colors)
139+
ax.yaxis.set_label_position('right')
140+
ax.set_ylabel('lower is better')
141+
ax.grid(zorder=0, axis='x', color='black')
142+
ax.barh(labels, sizes, bar_width, color=colors, zorder=3)
138143
fig.set_size_inches(w=figure_width, h=figure_height)
139144
fig.tight_layout()
140145
fig.savefig("file-size.webp", transparent=True, format="webp")

benchmark/pipe_age_password.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
sleep 0.05
3+
xdotool type "123456789"
4+
xdotool key 'Return'
5+
xdotool type "123456789"
6+
xdotool key 'Return'
7+
cat -

0 commit comments

Comments
 (0)