-
Notifications
You must be signed in to change notification settings - Fork 14
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
Use Zstd_jll to provide zstd, update to 1.4.4 #20
Conversation
Oh right, I forgot that JLLs only support Julia 1.3 and later... @bicycle1885, what are your thoughts on setting the minimum Julia version here to 1.3? |
This is required for using JLLs.
I pushed a separate commit that bumps the package version and the minimum Julia version, since that's effectively required for this PR. |
Can confirm this substantially helps for #19! On this branch, I get:
But still seems to be slower than v0.6.0 by a tad (not horrible, but non-negligible):
I guess this remaining chunk is probably another upstream perf issue? |
Absent testing directly with the C library, that would be my guess, since there haven't been any changes to the code here. |
Thanks for taking time to fix this! I have numbers similar to ararslan. CodecZstd v0.6.0: CodecZstd v0.6.1: PR#20: |
Thank you very much for doing it.
I'm perfectly fine with it. People should always use the latest release of Julia 😄 I quickly benchmarked the performance using 80 MB compressed text. On my laptop (macOS), this pull request was significantly faster than v0.6.0 and v0.6.1. However, on a Linux machine, this was somewhat slower than v0.6.0 and v0.6.1. Strangely, I couldn't detect reported performance degradation on v0.6.1 (I ran Pkg.resolve and Pkg.build before each benchmarking, so I believe I used the correct target binaries). I'll take more time on diagnosis. macOSv0.6.0:
v0.6.1 (master):
PR#20:
Linux (x86-64)v0.6.0:
v0.6.1 (master):
PR#20:
|
Interesting. The timings I reported in the PR body, where the performance was 0.6.1 < this PR < 0.6.0 were from x64 Linux as well. |
Would love if this were merged/tagged soon :) seems like a straight win to at least upgrade to the new Artifact system for the underlying zstd binary (even if zstd itself seems to have some perf fluctuations) |
As Jarrett said, I think this PR provides a strict improvement in terms of quality of life for recent Julia versions. Given that there seem to be performance fluctuations in zstd itself and this PR is otherwise a non-functional change, I think we should just go ahead and merge it. |
CodecZstd 0.7.0 requires Julia 1.3 and accesses zstd via a JLL. See JuliaIO/CodecZstd.jl#20 for more information. In the interest of releasing a version of Onda that supports the new version of CodecZstd, this also bumps the patch version.
CodecZstd 0.7.0 requires Julia 1.3 and accesses zstd via a JLL. See JuliaIO/CodecZstd.jl#20 for more information. In the interest of releasing a version of Onda that supports the new version of CodecZstd, this also bumps the patch version.
This rips out the BinaryProvider machinery in favor of the JLL produced automatically by Yggdrasil. See this blog post for more information about JLLs. In doing this, it updates the version of zstd used to 1.4.4, as that's the latest version provided by Yggdrasil.
It seems that #19 and perhaps #17 as well were caused by an upstream performance regression. I haven't identified the exact upstream commit, but there was at least one known regression in zstd 1.4.2 that has since been fixed.
For a 3.4 MB zstd-compressed file, these are the timings I get. Setup code:
Output on CodecZstd v0.6.0:
CodecZstd v0.6.1:
This PR:
Fixes #17, fixes #19 (would be good to have @jrevels and @Ankur-deDev confirm)