mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
Estimate the size of decoded streams in advance.
When decoding a stream, the decode buffer is often grown multiple times, its byte size increasing like so: 512, 1024, 2048, etc. This patch estimates the minimum size in advance (using the length of the encoded stream), often allowing the smaller sizes to be skipped. It also renames numerous |length| variables as |maybeLength| to make it clear that they can be |null|. I measured this change on eight documents. This change reduces the cumulative size of decode buffer allocations by 0--32%, with 10--20% being typical. This reduces peak RSS by 10 or 20 MiB for several of them.
This commit is contained in:
parent
c3ed71c9c5
commit
b3024db677
5 changed files with 85 additions and 60 deletions
|
@ -30,7 +30,7 @@ describe('stream', function() {
|
|||
|
||||
var input = new Stream(new Uint8Array([2, 100, 3, 2, 1, 255, 2, 1, 255]),
|
||||
0, 9, dict);
|
||||
var predictor = new PredictorStream(input, dict);
|
||||
var predictor = new PredictorStream(input, /* length = */ 9, dict);
|
||||
var result = predictor.getBytes(6);
|
||||
|
||||
expect(result).toMatchTypedArray(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue