-
Notifications
You must be signed in to change notification settings - Fork 93
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
Add an option to compile against zlib-ng instead of zlib #335
Conversation
dcc4a53
to
9e68072
Compare
decaa01
to
45a1624
Compare
Zlib-ng has roughly (ymmv) twice the performance of standard zlib.
The format is of course compliant but at any given compression level zlib-ng may use a different set of optimizations and thus the checksums don't match.
@praiskup I used that rubygem repo from COPR with 270,000 packages to test. The end result is a little less impressive than I was hoping. The main issue is that without In the best case scenario using all 4 flags together, it does reduce time spent inside the compression library by about 40%, but that only equates to a 10% overall improvement in runtime, which might not be worthwhile relative to the maintenance burden. zstd should be faster than that and result in a 10-25% overall improvement which is easier to justify especially given the file size benefits. But as far as COPR goes it would be a great idea to disable generating sqlite metadata everywhere except EL6 and EL7 repos because it has a huge impact. Disabling it dropped the runtime from 242 seconds to 106 seconds DNF doesn't use it so it's safe to drop, but I think "mdapi" does still use it currently, I don't know if that's a blocker for COPR the way it is for Fedora proper https://pagure.io/releng/issue/10745 |
Thank you for another look at performance. We use --skip-stat |
It should be supported by RHEL 8+ unless it's compiled out when building libsolv. It's hard to test without having a repo first. |
Zlib-ng has roughly (ymmv) twice the performance of standard zlib.