-
Notifications
You must be signed in to change notification settings - Fork 19
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
Performance 10x worse than C implementation #24
Comments
perf record shows
As compared with the C version
|
Yes, performance has not been a focus point at all so far. For a performance-oriented implementation, I would probably take the test cases and experiences so far, and start over with a new implementation. |
So I decided to work on a performance-focused version of the decompressor here: It passes the first few unit tests..but still has a few correctness issues I'm working through. I'd love comments if you have any--though of course it's still early since only the very basic tests pass |
Wow, that is a very impressive effort! Was rust-alloc-no-stdlib a direct consequence of the as-close-as-possible port? |
I've been timing the C implementation versus the rust implementation and I generally notice about a factor of 8-10x difference.
Do you know offhand any obvious performance tradeoffs that were made in the design of this version?
Do you have any ideas about various strategies we could employ to bring it within a factor of two, or ideally to the same speed as the C version especially for multi-megabyte files?
I noticed no inline assembly in the C version, so I'm hoping it is possible to bring the rust version to parity.
Have you done any profiling of the existing code or compared it with the C code?
The text was updated successfully, but these errors were encountered: