Closed Shnatsel closed 5 years ago
Merging #38 into master will decrease coverage by
0.09%
. The diff coverage is100%
.
@@ Coverage Diff @@
## master #38 +/- ##
=========================================
- Coverage 91.46% 91.36% -0.1%
=========================================
Files 14 14
Lines 1300 1285 -15
=========================================
- Hits 1189 1174 -15
Misses 111 111
Impacted Files | Coverage Δ | |
---|---|---|
src/lib.rs | 100% <ø> (ø) |
:arrow_up: |
src/util.rs | 91.17% <ø> (-1.33%) |
:arrow_down: |
src/non_blocking/deflate/decode.rs | 86.14% <100%> (-0.72%) |
:arrow_down: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update bf3c6c3...912fabd. Read the comment docs.
Use
rle_decode_fast
crate created by @WanzenBug and me instead of a bespoke unsafe block relying on non-local invariants.This change improves performance by about 10% as measured with
hyperfine -m 25 --warmup=3 'target/release/examples/flate -i enwiki-latest-all-titles-in-ns0.gz -o /dev/null gzip-decode'
Before:
After:
We're created the crate to solve recurring safety problems in RLE decoding. It contains a single unsafe block, which is a copy of
append_from_within()
function from this Rust RFC. We're reasonably confident it is sound because it's mostly a copy of a pre-exisitng stdlib function, and I cannot find anything wrong with its logic.