[
https://issues.apache.org/jira/browse/PDFBOX-3131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Lehmkühler resolved PDFBOX-3131.
----------------------------------------
Resolution: Fixed
I'm done here. Some of the changes have an impact only on slow machines with a
low amount of memory. Others speed up the font reading by a factor of 2 or 3.
- don't store intermediate data
- reduce the size of lists (use ranges instead of thousands of single values
within a list)
- avoid resizing/rehashing operations of lists/maps
- don't copy/hold the data to be read multiple times
- skip unneeded data (AFM parser)
- don't read parts of a font if the font is omitted later
- optimized usage of buffered data when reading a certain range of bytes
- use arrays instead of lists if the number of entries is fixed
> Reduce amount of intermediate data and objects to reduce memory
> footprint/complexity
> ------------------------------------------------------------------------------------
>
> Key: PDFBOX-3131
> URL: https://issues.apache.org/jira/browse/PDFBOX-3131
> Project: PDFBox
> Issue Type: Improvement
> Components: FontBox
> Affects Versions: 2.0.0
> Reporter: Andreas Lehmkühler
> Assignee: Andreas Lehmkühler
> Fix For: 2.0.0
>
>
> The CFFParser holds a lot of intermediate data and produces a lot of objects
> to do so. The idea is to reduce the amount of such objects and data to reduce
> the memory footprint and the complexity.
> - the class IndexData holds intermediate data creates byte array everytime
> when getBytes is called. I'm going to replace the class with a simple list to
> reduce the memory footprint and the complexity
> - remove unused members of private classes
> - create a list of strings instead of a list of byte arrays which is used to
> create those strings
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]