Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
releasenotes [2021/07/29 17:53] christian [New APIs] |
releasenotes [2021/07/29 17:58] christian [Internal changes] |
||
---|---|---|---|
Line 61: | Line 61: | ||
=== Improving performance for large files === | === Improving performance for large files === | ||
- | When reading many objects at once, the library was slow with certain | + | When reading many objects at once, the library was slow with large files. In this investigation, |
* Object streams were created and initialized for each access to an object inside. Now, the streams are kept alive in a cache. | * Object streams were created and initialized for each access to an object inside. Now, the streams are kept alive in a cache. | ||
- | * References from traversing the PDF objects were collected in an OrderedCollection. The visited check was done with this collection. | + | * References from traversing the PDF objects were collected in an OrderedCollection. The visited check was done with this collection. |
=== Redesigned references and tracing === | === Redesigned references and tracing === | ||
Line 70: | Line 70: | ||
Objects are picked (read) from a PDF file stream when they are needed. Originally, this was done using blocks stored in place of the value (referent) of a reference. When the value is requested, the block is evaluated and the resulting PDF object is stored as the referent. The block reads the raw object and converts it to the proper type. This can be nested and several types may apply. | Objects are picked (read) from a PDF file stream when they are needed. Originally, this was done using blocks stored in place of the value (referent) of a reference. When the value is requested, the block is evaluated and the resulting PDF object is stored as the referent. The block reads the raw object and converts it to the proper type. This can be nested and several types may apply. | ||
- | Unfortunately, | + | Unfortunately, |
While at it, the number and generation of references was extracted to an '' | While at it, the number and generation of references was extracted to an '' | ||
Line 76: | Line 76: | ||
=== Changed internal streams to bytes === | === Changed internal streams to bytes === | ||
- | The '' | + | The '' |
==== Gemstone ==== | ==== Gemstone ==== |