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

Benchmark the Haskell encode API #95

Merged
merged 5 commits into from
Sep 19, 2023
Merged

Conversation

exarkun
Copy link
Member

@exarkun exarkun commented Sep 18, 2023

Example text output:

benchmarking 2 of 3/blockSize = 1                                                        
time                 109.7 ns   (108.4 ns .. 111.0 ns)  
                     0.999 R²   (0.999 R² .. 1.000 R²)
mean                 109.1 ns   (108.2 ns .. 109.9 ns)
std dev              2.809 ns   (2.276 ns .. 3.616 ns)
variance introduced by outliers: 38% (moderately inflated)

Also generates an HTML-format report with some graphs. See http://www.serpentine.com/criterion/fibber.html for an example.

This also adds cachix-based caching for the nix build since the time to build the new benchmark dependencies otherwise pushes the job over the CircleCI job time limit (1 hour).

Dropping the alternate block sizes since in practice no one cares about
performance of 1 byte blocks and performance above 1MB is probably just
linear...?

The performance difference between decoding primary and secondary blocks seems
noteworthy though.
@exarkun exarkun marked this pull request as ready for review September 19, 2023 15:18
@exarkun exarkun merged commit 12a1e95 into tahoe-lafs:master Sep 19, 2023
@exarkun exarkun deleted the benchmark branch September 19, 2023 15:50
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