Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

benchmarks: add 4K block size #16

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

rfjakob
Copy link

@rfjakob rfjakob commented Feb 27, 2025

4 KiB is interesting because it is the default
page size on Linux, and also the block size
that gocryptfs (a disk encryption tool) uses.

gocryptfs is contemplating adding AEGIS support
( rfjakob/gocryptfs#900 ).

Output now looks like this:

$ go test -bench .
goos: linux
goarch: amd64
pkg: github.com/ericlagergren/aegis
cpu: Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
BenchmarkSeal16B_128L-4   	12179401	        97.09 ns/op	 164.80 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen16B_128L-4   	11123548	       104.7 ns/op	 152.75 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal1K_128L-4    	 4735476	       253.1 ns/op	4045.21 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen1K_128L-4    	 4614565	       259.0 ns/op	3953.60 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal4K_128L-4    	 1685662	       712.3 ns/op	5750.17 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen4K_128L-4    	 1667968	       719.5 ns/op	5692.93 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal8K_128L-4    	  867411	      1327 ns/op	6175.61 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen8K_128L-4    	  858153	      1333 ns/op	6143.63 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal16K_128L-4   	  460386	      2543 ns/op	6441.87 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen16K_128L-4   	  458068	      2556 ns/op	6409.65 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal16B_256-4    	12555355	        95.04 ns/op	 168.35 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen16B_256-4    	11600582	       102.5 ns/op	 156.05 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal1K_256-4     	 3595903	       336.3 ns/op	3045.34 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen1K_256-4     	 3511225	       340.0 ns/op	3011.56 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal4K_256-4     	 1000000	      1056 ns/op	3878.99 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen4K_256-4     	 1000000	      1046 ns/op	3914.79 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal8K_256-4     	  572815	      2007 ns/op	4080.76 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen8K_256-4     	  586015	      1989 ns/op	4119.45 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal16K_256-4    	  295207	      3930 ns/op	4168.82 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen16K_256-4    	  303639	      3878 ns/op	4224.89 MB/s	       0 B/op	       0 allocs/op
PASS
ok  	github.com/ericlagergren/aegis	26.662s

4 KiB is interesting because it is the default
page size on Linux, and also the block size
that gocryptfs (a disk encryption tool) uses.

gocryptfs is contemplating adding AEGIS support
( rfjakob/gocryptfs#900 ).

Output now looks like this:

$ go test -bench .
goos: linux
goarch: amd64
pkg: github.com/ericlagergren/aegis
cpu: Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
BenchmarkSeal16B_128L-4   	12179401	        97.09 ns/op	 164.80 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen16B_128L-4   	11123548	       104.7 ns/op	 152.75 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal1K_128L-4    	 4735476	       253.1 ns/op	4045.21 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen1K_128L-4    	 4614565	       259.0 ns/op	3953.60 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal4K_128L-4    	 1685662	       712.3 ns/op	5750.17 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen4K_128L-4    	 1667968	       719.5 ns/op	5692.93 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal8K_128L-4    	  867411	      1327 ns/op	6175.61 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen8K_128L-4    	  858153	      1333 ns/op	6143.63 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal16K_128L-4   	  460386	      2543 ns/op	6441.87 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen16K_128L-4   	  458068	      2556 ns/op	6409.65 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal16B_256-4    	12555355	        95.04 ns/op	 168.35 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen16B_256-4    	11600582	       102.5 ns/op	 156.05 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal1K_256-4     	 3595903	       336.3 ns/op	3045.34 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen1K_256-4     	 3511225	       340.0 ns/op	3011.56 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal4K_256-4     	 1000000	      1056 ns/op	3878.99 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen4K_256-4     	 1000000	      1046 ns/op	3914.79 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal8K_256-4     	  572815	      2007 ns/op	4080.76 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen8K_256-4     	  586015	      1989 ns/op	4119.45 MB/s	       0 B/op	       0 allocs/op
BenchmarkSeal16K_256-4    	  295207	      3930 ns/op	4168.82 MB/s	       0 B/op	       0 allocs/op
BenchmarkOpen16K_256-4    	  303639	      3878 ns/op	4224.89 MB/s	       0 B/op	       0 allocs/op
PASS
ok  	github.com/ericlagergren/aegis	26.662s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant