-
Notifications
You must be signed in to change notification settings - Fork 16
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
Various changes (hopefully improvements) #12
base: master
Are you sure you want to change the base?
Commits on Feb 11, 2020
-
Fix decode output buffer length calculation.
The output length only needs to be half the input length.
Configuration menu - View commit details
-
Copy full SHA for 6f392c3 - Browse repository at this point
Copy the full SHA 6f392c3View commit details -
Upgrade criterion and test a variety of byte lengths.
This uses criterions benchmark groups to compare the relative performance between the different implementations at various byte lengths. The criterion reports now provide graphs that overlay the different implementation so you can easily see the relative performance.
Configuration menu - View commit details
-
Copy full SHA for a811901 - Browse repository at this point
Copy the full SHA a811901View commit details -
Range patterns are deprecated, switch to inclusive ranges instead. Re-export the deprecated function `hex_to` in a separate use statement that allows deprecation warnings.
Configuration menu - View commit details
-
Copy full SHA for 50f9d46 - Browse repository at this point
Copy the full SHA 50f9d46View commit details -
Don't return an error when decoding an empty slice.
This isn't an error condition. A decoded empty slice is just an empty slice.
Configuration menu - View commit details
-
Copy full SHA for a5898da - Browse repository at this point
Copy the full SHA a5898daView commit details
Commits on Feb 12, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 59e5b28 - Browse repository at this point
Copy the full SHA 59e5b28View commit details
Commits on Feb 14, 2020
-
Reorganize decode into submodules.
This also removes functions from the public api. hex_decode and hex_decode_unchecked are the only things exposed by default. hex_check_sse, hex_check_fallback, and hex_decode_fallback are only visible when compiled with the 'bench' feature. This means that benches now need to specify --features=bench when running. $ cargo bench --features=bench This makes no changes to the actual implementation and benchmarks confirm that.
Configuration menu - View commit details
-
Copy full SHA for 2605d11 - Browse repository at this point
Copy the full SHA 2605d11View commit details -
Configuration menu - View commit details
-
Copy full SHA for ca46185 - Browse repository at this point
Copy the full SHA ca46185View commit details -
Rather than checking to ensure all bytes are within valid ranges, this now checks to ensure no bytes are within invalid ranges. This is mostly to avoid compiler warning when comparing an i32 to 0xffff because we now compare the i32 to zero. The performance is identical.
Configuration menu - View commit details
-
Copy full SHA for 21cacdd - Browse repository at this point
Copy the full SHA 21cacddView commit details -
Modify decode to check the input as decoding rather than as a separat…
…e pass over the input data. This speeds up checked decoding substantially, while not changing the performance of unchecked decoding. On my machine this increases throughput when decoding 2 bytes of data by 20%, and when decoding 4096 bytes of data by 116%.
Configuration menu - View commit details
-
Copy full SHA for 0de392a - Browse repository at this point
Copy the full SHA 0de392aView commit details -
Configuration menu - View commit details
-
Copy full SHA for fcb43b2 - Browse repository at this point
Copy the full SHA fcb43b2View commit details -
Use a lookup table to determine the offset to add to each byte. This improves performance substantially. decode/faster_hex/4096 thrpt increased 15% decode/faster_hex_unchecked/4096 thrpt increased 54%
Configuration menu - View commit details
-
Copy full SHA for ad34b9e - Browse repository at this point
Copy the full SHA ad34b9eView commit details
Commits on Feb 18, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 4d1af86 - Browse repository at this point
Copy the full SHA 4d1af86View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2773009 - Browse repository at this point
Copy the full SHA 2773009View commit details -
Configuration menu - View commit details
-
Copy full SHA for e5c516f - Browse repository at this point
Copy the full SHA e5c516fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1558c78 - Browse repository at this point
Copy the full SHA 1558c78View commit details -
Configuration menu - View commit details
-
Copy full SHA for b7e178b - Browse repository at this point
Copy the full SHA b7e178bView commit details -
Add a decode function that returns a Vec<u8> and a couple proptests to
compare the implementation against the hex crate.
Configuration menu - View commit details
-
Copy full SHA for ae677f1 - Browse repository at this point
Copy the full SHA ae677f1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bd7c34 - Browse repository at this point
Copy the full SHA 9bd7c34View commit details -
Configuration menu - View commit details
-
Copy full SHA for 124a106 - Browse repository at this point
Copy the full SHA 124a106View commit details -
Remove the check bench and implementations.
The benches added unnecessary code that isn't available via the public api and is only benchmarked as a side-effect of the decode benchmark.
Configuration menu - View commit details
-
Copy full SHA for 8d8ace9 - Browse repository at this point
Copy the full SHA 8d8ace9View commit details