[ https://issues.apache.org/jira/browse/PDFBOX-3432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15391451#comment-15391451 ]
Michael Doswald commented on PDFBOX-3432: ----------------------------------------- The split was done because the implementation of the simple IntIntMap doesn't use an iterator object that inherits from Iterator, the GS Colletions does. It is possible that the timing differences in the benchmarks origin from this fact. > Optimize CID to GlyphId mapping (TTF) > ------------------------------------- > > Key: PDFBOX-3432 > URL: https://issues.apache.org/jira/browse/PDFBOX-3432 > Project: PDFBox > Issue Type: Improvement > Components: FontBox > Affects Versions: 2.0.1, 2.0.2, 2.0.3 > Environment: Ubuntu 14.04.4 LTS > Reporter: Michael Doswald > Priority: Trivial > Labels: optimization, performance > Fix For: 2.0.3, 2.1.0 > > Attachments: PDFBOX-3432_Optimize_CID_to_GlyphId_mapping_rev1.patch, > fontbox-benchmark-CustomMap-VS-GSCollections.zip, > patch_for_CustomMap_VS_GSCollections_benchmark.patch, > pdfbox-performance-PDFBOX-3432.zip > > > TTF fonts map code-points (Code IDs) to glyphs. These are mappings from int > to int. Because the JDK lacks map classes for primitive types, the code (e.g. > in CmapSubtable) currently uses Map<Integer,Integer> for those mappings. This > is inefficient in different ways: > * Autoboxing/unboxing introduces a performance penalty > * Boxing to Integer objects has a memory overhead > * The JDK Map implementation has a big memory overhead for such simple objects > For efficiency (execution time and memory consumption) I would propose to > introduce a simple IntIntMap implementation which works with primitive > integers. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org