-
Notifications
You must be signed in to change notification settings - Fork 15
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 zlib-ng #135
Add zlib-ng #135
Conversation
Hi @marcelm, back from the holidays yet? This will have a nice performance impact on cutadapt with default settings. I guess the PR e-mail will be at the bottom of a long list of other e-mails by now, so this is just a friendly ping to bump it back into view. |
Hi, indeed, the GitHub notifications have piled up quite a bit ... This looks good! Can you please add a chagelog entry? I was considering changing the default compression level in Cutadapt from 5 to 4. Do I understand correctly that with this change, I would get a smaller file and that it would be twice as fast? (At least for this dataset.) |
Done.
Yes and yes :-D. Though I still recommend level 2, that is almost an order of magnitude faster ;-). |
Awesome!
I may come around eventually ... |
Add zlib-ng, including its threaded interface.
This PR is much less extensive than #124.
Benchmarks!
before: (4 threads + level 5 is current cutadapt default)
after:
Looks like zlib-ng level 5 uses much less time than zlib level 5, so this is a great improvement for cutadapt. Going back to level 4 cuts down 20% of compute time while going back to zlib level 5 size. Not really worth it if filesize is an important consideration. Level 6 suffers immensely from diminishing returns and is not worth it for such big files IMO.
Python-isal handles levels 1 to 3. These have similar size results. Just added level 1 for comparison. This is not affected by this PR.