-
Notifications
You must be signed in to change notification settings - Fork 70
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
Compression benchmarks #130
Conversation
I added https://github.com/pseitz/lz4_flex which is VERY fast:
but doesn't compress as well:
|
I think it would be worth to refactor puffin to support multiple compression schemes/libraries ( |
### Checklist * [x] I have read the [Contributor Guide](../CONTRIBUTING.md) * [x] I have read and agree to the [Code of Conduct](../CODE_OF_CONDUCT.md) * [x] I have added a description of my changes and why I'd like them included in the section below ### Description of Changes [`lz4_flex`](https://github.com/PSeitz/lz4_flex) is a light-weight Rust-only dependency. It compiles and runs much faster than zstd, and it supports compression in wasm. zstd compresses better, so you can still opt-in to it with the "zstd" feature. For most `puffin` users the effect will be faster compilation time and less CPU usage (about a third of zstd). Benchmarks can be found here: #130 (comment) Users of `puffin` must update their `puffin_viewer`s, but the new `puffin_viewer` will still be able to open old puffin streams.
can close this now as we do support lz4 as well |
After noticing that by far the slowest dependency to build on my machine was zstd (see rerun-io/rerun#1316), I set out in search for finding an alternative compression library that is pure Rust and has similar compression ratio & speed as zstd.
Not very successful so far! Seems the C written zstd is a lot faster than everything tried here!
Measurements on my M1 Max so far:
slightly tweaked for roughly similar compression ratios for the generated test data:
Checklist
Description of Changes
Describe your changes here
Related Issues
List related issues here