gendx / lzma-rs

An LZMA decoder written in pure Rust
MIT License
129 stars 27 forks source link

Streaming Decompressor v3 #58

Closed cccs-sadugas closed 4 years ago

cccs-sadugas commented 4 years ago

Pull Request Overview

Changes since last PR:

Testing Strategy

This pull request was tested by...

Supporting Documentation and References

Link to previous PR: #55

cccs-sadugas commented 4 years ago

Benchmarks are:

master

test compress_65536                  ... bench:   3,136,090 ns/iter (+/- 243,071)
test compress_empty                  ... bench:       1,473 ns/iter (+/- 170)
test compress_hello                  ... bench:       2,149 ns/iter (+/- 215)
test decompress_after_compress_65536 ... bench:   3,846,980 ns/iter (+/- 554,928)
test decompress_after_compress_empty ... bench:       3,412 ns/iter (+/- 396)
test decompress_after_compress_hello ... bench:       4,375 ns/iter (+/- 514)
test decompress_big_file             ... bench:   7,479,885 ns/iter (+/- 855,966)
test decompress_huge_dict            ... bench:       4,333 ns/iter (+/- 685)

streaming-decompressor-v3

test compress_65536                  ... bench:   3,196,185 ns/iter (+/- 307,679)
test compress_empty                  ... bench:       1,418 ns/iter (+/- 161)
test compress_hello                  ... bench:       2,113 ns/iter (+/- 416)
test decompress_after_compress_65536 ... bench:   3,796,298 ns/iter (+/- 392,350)
test decompress_after_compress_empty ... bench:       3,325 ns/iter (+/- 370)
test decompress_after_compress_hello ... bench:       4,329 ns/iter (+/- 663)
test decompress_big_file             ... bench:   7,563,810 ns/iter (+/- 792,639)
test decompress_huge_dict            ... bench:       4,271 ns/iter (+/- 456)
test decompress_stream_big_file      ... bench:   7,194,940 ns/iter (+/- 647,558)
cccs-sadugas commented 4 years ago

@gendx do you have an update on when you will be able to review this PR?

cccs-sadugas commented 4 years ago

Thanks for the review :). I published a new PR #59 with the requested changes.

I had some issues with the suggested changes for the RangeDecoder::{from_parts, set} functions so those are still up for discussion.