-
Notifications
You must be signed in to change notification settings - Fork 26
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
Match speed of libvorbis #2
Comments
Maybe there is some improvement doable in huffman tree decoding? No idea. |
Note about current speed: it ranges between 1.6x and 1.8x for floor1 files, and its faster for floor0 files, but those don't really matter as there are almost no files with floor 0. |
And part of the speed improvement was thanks to changes between rust 1.11 and 1.12 compilers. |
Wow, seems recent changes in rustc have lead to some serious speed improvement. As of rust nightly compiler |
(note: I'm always comparing the "Overall ratio of difference" output of |
mhh, seems it has the same performance on Rust 1.12.1, so its caused by something else? No idea. Either way, its really good. |
As of |
With |
Have there been some recent regressions?
|
@ashthespy I'm not sure where this comes from. This slow behaviour happens on rustc 1.20 stable taken from rustup as well, so it isn't a regression of rustc itself or of llvm. It might be some improvement in how gcc optimizes: libvorbis is usually taken from the OS so it's compiled via your OS compiler, which is usually gcc, while lewton is compiled using rustc + llvm. To get a fair comparison, one would have to compare to clang of the same version that the rustc is coming from. |
Most of the performance delta is due to the transient Vec and SmallVec allocations, realloc, and drops. Please see my comments on the allocation issue regarding the need for an API and design change to solve this issue efficiently. |
atm we are two times slower than libvorbis. We need to be at least as fast as them.
The text was updated successfully, but these errors were encountered: