mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-26 01:58:06 +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
|
@ -431,9 +431,9 @@ var CipherTransform = (function CipherTransformClosure() {
|
|||
this.streamCipherConstructor = streamCipherConstructor;
|
||||
}
|
||||
CipherTransform.prototype = {
|
||||
createStream: function CipherTransform_createStream(stream) {
|
||||
createStream: function CipherTransform_createStream(stream, length) {
|
||||
var cipher = new this.streamCipherConstructor();
|
||||
return new DecryptStream(stream,
|
||||
return new DecryptStream(stream, length,
|
||||
function cipherTransformDecryptStream(data, finalize) {
|
||||
return cipher.decryptBlock(data, finalize);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue