[ 
https://issues.apache.org/jira/browse/PDFBOX-3103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tomasz Pawlak updated PDFBOX-3103:
----------------------------------
    Attachment: RAFDataStream.java.patch

I've tested revision 1715250 from trunk. Printing of the test document takes now
* 2.32s if font cache is built
* 3.04s if font cache needs to be built

However application of the provided patch (that adds buffering to 
{{RAFDataStream}}) lowers the times even more to:
* 2.14s if font cache is built
* 2.27s otherwise

I strongly recommend to integrate this patch with trunk sources.

> Slow performance when printing PDF (fix provided)
> -------------------------------------------------
>
>                 Key: PDFBOX-3103
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3103
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: FontBox
>    Affects Versions: 2.0.0
>            Reporter: Tomasz Pawlak
>              Labels: easyfix, easytest, optimization, patch
>         Attachments: RAFDataStream.java, RAFDataStream.java.patch, test.pdf
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> When printing a PDF document (4 pages, 177KB, link below) using command
> {code}
> java -jar pdfbox-app-2.0.0-RC1.jar PrintPDF test.pdf
> {code}
> processing of the document before print takes about 15 seconds on system with 
> Core i5-4670 processor. 
> Most of the time is wasted on reading font files from system. The reason is 
> that the font is read byte by byte in an unbuffered manner. The defective 
> code is located in class {{org.apache.fontbox.ttf.RAFDataStream}}, where new 
> instance of {{RandomAccessFile}} is created without buffering.
> I prepared a buffer wrapper over {{RandomAccessFile}} that adds buffering to 
> {{RandomAccessFile}}. Use of the buffer in {{RAFDataStream}} shortens 
> printing time *5 times*, i.e., printing takes 3 seconds instead of 15s.
> The wrapper class is augmented version of a class released at 
> https://code.google.com/p/jmzreader/wiki/BufferedRandomAccessFile (Apache 
> License 2.0).
> Please integrate provided fix with original source of FontBox.
> PDF document and fix are available at http://1drv.ms/1NsKPFc



--
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

Reply via email to