You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "ccouturi (JIRA)" <ji...@apache.org> on 2015/11/04 17:37:28 UTC

[jira] [Created] (PDFBOX-3088) Cache glyph table to optimize concurrent access

ccouturi created PDFBOX-3088:
--------------------------------

             Summary: Cache glyph table to optimize concurrent access
                 Key: PDFBOX-3088
                 URL: https://issues.apache.org/jira/browse/PDFBOX-3088
             Project: PDFBox
          Issue Type: Improvement
          Components: FontBox
    Affects Versions: 2.0.0
            Reporter: ccouturi
            Priority: Minor


If several threads convert several pdf to png (one thread access to a single document at a time) they are a contention on a lock in GlythTable. Jstack shows that all threads are in state blocked on the synchronized block  in the getGlyph method. The lock is necessary it's ok, but degrades performance.

This patch cache glyphs already read. 
With the patch PDFBOX-3080, the follow benchmark compare 1000 pdf conversions with 1, 8, and 50 threads.

|| Simulation|| PDF 2.0-SNAPSHOT || With this patch + PDFBOX3080 ||
|| 1000 conversions / 1 thread || 120 s | 71 s|
|| 1000 conversions / 8 threads || 76 s | 28 s|
|| 1000 conversions / 50 threads || 81 s | 33 s|



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org