diff options
author | Jay Berkenbilt <ejb@ql.org> | 2019-08-18 04:37:05 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2019-08-18 15:00:55 +0200 |
commit | 89dacd8eba529663ab9c410efffd698b3023a9d6 (patch) | |
tree | 80886bfa5b43d4982612de10c8e7c4106f9cc255 | |
parent | 522d2b2227cbc8edc1b7404f2e3980a28d216988 (diff) | |
download | qpdf-89dacd8eba529663ab9c410efffd698b3023a9d6.tar.zst |
Array optimization fixes performance issues (fixes #305, #311)
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | TODO | 7 | ||||
-rw-r--r-- | manual/qpdf-manual.xml | 8 |
3 files changed, 16 insertions, 7 deletions
@@ -1,3 +1,11 @@ +2019-08-17 Jay Berkenbilt <ejb@ql.org> + + * Change internal implementation of QPDF arrays to use sparse + arrays, which results in using much less memory for arrays with + large numbers of nulls. Various files have been encountered in the + wild that contains thousands of arrays with millions of nulls. + Fixes #305, #311. + 2019-07-03 Jay Berkenbilt <ejb@ql.org> * Non-compatible API change: change @@ -1,10 +1,3 @@ -Performance -=========== - -There is some performance problem that happens with some large files. -Issues 305 and 311 both seem to be examples of this. Files saved in -../misc/bugs. - Fuzz Errors =========== diff --git a/manual/qpdf-manual.xml b/manual/qpdf-manual.xml index d5ad6466..e2544cb9 100644 --- a/manual/qpdf-manual.xml +++ b/manual/qpdf-manual.xml @@ -4482,6 +4482,14 @@ print "\n"; </listitem> <listitem> <para> + The underlying implementation of QPDF arrays has been + enhanced to be much more memory efficient when dealing with + arrays with lots of nulls. This enables qpdf to use + drastically less memory for certain types of files. + </para> + </listitem> + <listitem> + <para> A new helper method <function>QUtil::read_file_into_memory</function> was added. </para> |