You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pdfbox.apache.org by Sridhar So <sr...@tcs.com> on 2015/11/13 21:06:54 UTC

Performance Issue with 2.0.0 SNAPSHOT latest builds

Subject line changed.


Sridhar Sowmiyanarayanan
Tata Consultancy Services
Website: http://www.tcs.com
____________________________________________
Experience certainty.	IT Services
Business Solutions
Consulting
____________________________________________


-----Sridhar So/BLR/TCS wrote: -----
To: users@pdfbox.apache.org
From: Sridhar So/BLR/TCS
Date: 11/14/2015 01:32AM
Cc: users-owner@pdfbox.apache.org
Subject: Re: Returned post for users@pdfbox.apache.org

Dear PDFBox Developers/Contributors


Thanks for reply, I tested with latest SNAPSHOT builds 
https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/preflight-app/2.0.0-SNAPSHOT/ ------> build 1823
https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/pdfbox-app/2.0.0-SNAPSHOT/ ---------> build 1800 and 1801
 Font cache rebuild is not happening every time and it is able to use from local store, however build 1800 & 1801 requires Admin privilage. 
 Compared to PDFBox version 1.8.10, 2.0.0 SNAPSHOT builds performance is slow   ( 1.8.10 about 13 seconds, but 2.0.0 SNAPSHOT 1800, 1801 takes 30 seconds. )

 Measured the time difference between 1.8.10 and 2.0.0 SNAPSHOT builds with following code
 Getting 13 to 19 seconds in 1.8.10, whereas in 2.0.0SNAPSHOT builds 22 to 36 seconds 
  
                    long t1 =  System.currentTimeMillis() ;
			pdDocument = PDDocument.load(is);	
			long t2 =  System.currentTimeMillis()  ;
			PrinterJob job = PrinterJob.getPrinterJob();
		    job.setPageable(new PDFPageable(pdDocument));  //  Version 2.0.0 SNAPSHOT builds
			//job.setPageable(new PDPageable(pdDocument)); //  Version 1.8.10 
		    job.print();	
			long t3 =  System.currentTimeMillis()  ;
			//printWithPaper(pdDocument, "A4") ;
			System.out.println ( " PDDocument load time = "  + 
				String.valueOf(t2 - t1) + " Printing Time =  " + String.valueOf(t3-t2 ) +
				" Total time = " + String.valueOf( (t3 - t1)/1000.0 ) + " seconds "  ) ;
 


Do we have 
Performance fix available in 2.0.0 SNAPSHOTS, if so please give full path and which build?
Is there a fix available where  Admin privelage is not required?
Thanks a lot for your reply in advance.

FYI
---- 
Alignment issue is still there in 2.0.0 and my attempt to adjust alignment using below code takes lot of time. 

PageFormat pageFormat = new PageFormat();
        pageFormat.setOrientation(PageFormat.PORTRAIT);
        Paper paper= pageFormat.getPaper();

	if ("SLEEK".equalsIgnoreCase(receiptType)) {
           paperWidth = 3.14;
            paperHeight = 50;
        } else if ("LETTER".equalsIgnoreCase(receiptType)) {
            paperWidth = 8.5;
            paperHeight = 11;
        } else if ("LEGAL".equalsIgnoreCase(receiptType)) {
            paperWidth = 8.5;
            paperHeight = 14;
        }
          else
        {
            paperWidth = 8.3;
            paperHeight = 11.7;
        }

        paper.setSize(paperWidth * 72.0, paperHeight * 72.0);
        paper.setImageableArea(-2000, 0, paper.getWidth(), paper.getHeight());
        pageFormat.setPaper(paper);


        PrinterJob job = PrinterJob.getPrinterJob(); 
	job.setPageable(new PDFPageable(document)); 

        Book book = new Book(); 
	book.append(new PDFPrintable(document), getPageFormat(receiptType) , document.getNumberOfPages()); 
	
	job.setPageable(book); 
	job.print();


Regards
Sridhar Sowmiyanarayanan
Tata Consultancy Services
Website: http://www.tcs.com
____________________________________________
Experience certainty.	IT Services
Business Solutions
Consulting
____________________________________________





-

To:	users@pdfbox.apache.org
cc:	commits@pdfbox.apache.org
Subject:	Re: Speedup Font Cache: Performance Issue in PDFBox 2.0.0-RC1

Dear PDFBox Community

Adding Commits, John and Tilman in the mail request

Details are in below mail.

In brief again

In our system, PDF files generated in server and is sent to client and in client applet code uses PDFBox to print.
With PDFBox 1.8.10, we have alignment issue as some characters were missing on left side.
With PDFBox 2.0.0-RC1, we have faced performance issue ( slow )

Do we have fix or patch available 
either in 2.0.0-RC1 for performance  OR
alignment issue in 1.8.10
Our PDF documents uses True Type Fonts, mostly Ariel Unicode

Thanks a lot for your help and support.

Regards
Sridhar Sowmiyanarayanan
Tata Consultancy Services
Website: http://www.tcs.com
____________________________________________
Experience certainty. IT Services
Business Solutions
Consulting
____________________________________________


-----Sridhar So/BLR/TCS wrote: -----
To: users@pdfbox.apache.org
From: Sridhar So/BLR/TCS
Date: 11/12/2015 06:23PM
Subject: Speedup Font Cache: Performance Issue in PDFBox 2.0.0-RC1

Dear PDFBox Developers/Contributors

I am unable to subscribe to users mailing list as the link tries to open Outlook not the page to subscribe, hence a seperate mail on similar/same issue discussed.

Issue:
------- 
PDFBox2.0.0-RC1 is very slow in printinng ( taking 35 to 50 seconds )  as it tries to load fonts each time with the following message

WARNING: New fonts found, font cache will be re-built
Nov 12, 2015 3:17:26 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider <init>
WARNING: Building font cache, this may take a while
Nov 12, 2015 3:17:32 PM org.apache.pdfbox.pdmodel.font.FileSystemFontProvider saveCache
WARNING: Finished building font cache, found 522 fonts


Is the fix or patch available to avoid slow performance due to above ( rebuilding font cache ÿevery tme ) ?ÿ
If the fix not available in 2.0.0-RC1,ÿIs there any way to fix alignment issue in PDFBox 1.8.10? as 1.8.10 left margin is too low and first few characters are found cut in printout.

With PDFBox1.8.10, there is no performance issue, but alignment in prontout is not proper. ÿÿ
With PDFBox 2.0.0-RC1, we are facing performance issue.

PDFDocument used has Ariel ÿUnicode or True Type Fonts.ÿ

Similar discussion thread is pasted below, as I was unable to reply to same discussion thread, nor able to subscribe to users mailing list, hence a seperate mail.

Regards
Sridhar

Subject:	Re: Speedup Font Cache	
From:	John Hewson (jo...@jahewson.com)
Date:	Oct 21, 2015 5:26:41 pm
List:	org.apache.pdfbox.users

On 21 Oct 2015, at 09:43, Maruan Sahyoun <sa...@fileaffairs.de> wrote:

Hi,

Am 21.10.2015 um 18:40 schrieb Tilman Hausherr <TH...@t-online.de>:

Am 21.10.2015 um 14:10 schrieb Roberto Nibali:
Hi John

On Wed, Oct 21, 2015 at 12:35 AM, John Hewson <jo...@jahewson.com> wrote:

Yes, I&#8217;m able to replicate that issue on Windows. It&#8217;s apparently related
to administrator ownership of that registry key&#8217;s parent node. Looks like
it&#8217;ll be necessary to log in as admin and create that key with user access.
I guess that&#8217;s far from ideal?

The whole issue also happens on MacOSX. When you introduce this on-disk
cache a couple of months back, it worked fine, however one of the recent
changes to SVN must have wrecked the initially intended functionality. Not
only is the font caching setup 5-10 times as long as it used to be, it also
does not seem to persist it anymore. Version used:

$ svn info | grep -i changed
Last Changed Author: tilman
Last Changed Rev: 1709647
Last Changed Date: 2015-10-20 19:04:02 +0200 (Tue, 20 Oct 2015)

Running my test tool indicates:

Oct 21, 2015 2:08:29 PM
org.apache.pdfbox.pdmodel.font.FileSystemFontProvider loadCache
WARNING: New fonts found, font cache will be re-built
Oct 21, 2015 2:08:29 PM
org.apache.pdfbox.pdmodel.font.FileSystemFontProvider <init>
WARNING: Building font cache, this may take a while
Oct 21, 2015 2:08:39 PM
org.apache.pdfbox.pdmodel.font.FileSystemFontProvider saveCache
WARNING: Finished building font cache, found 654 fonts
[INFO, ctx=./ccalt.pdf]: Opening Source ./ccalt.pdf
[INFO, ctx=./ccalt.pdf]: Opening Template ./cctemp.pdf
[INFO, ctx=./ccalt.pdf]: Writing Output ./ccmig.pdf
[INFO, ctx=./ccalt.pdf]: Completed in 15037.02ms

This used to be anything between 1200ms and 2300ms and once it was
persisted onto disk, it was rather fast in subsequent calls. Unfortunately,
SVN does not provide the handy tool of "git bisect" to quickly find out
which change actually caused this regression.

There were only 4 changes since then, so it might be worth a try to just revert
that file.

(I can't help; for me, it has always been slow.)

Could it be that 1) you installed new stuff on your computer, 2) that MacOS has
many of its fonts in .ttc files? In Windows there are only 10.

on my OS X I have 92 ttc files (out of 384) :-)

Yep, OS X uses ttc much more heavily than Windows and some of those are big
Asian fonts which PDFBox parses relatively slowly.

&#8212; John

BR
Maruan

Tilman

Let me know if you need any further input.

Cheers
Roberto



Regards
Sridhar Sowmiyanarayanan
Tata Consultancy Services
Website:ÿhttp://www.tcs.com
____________________________________________
Experience certainty. IT Services
Business Solutions
Consulting
____________________________________________
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain 
confidential or privileged information. If you are 
not the intended recipient, any dissemination, use, 
review, distribution, printing or copying of the 
information contained in this e-mail message 
and/or attachments to it are strictly prohibited. If 
you have received this communication in error, 
please notify us by reply e-mail or telephone and 
immediately and permanently delete the message 
and any attachments. Thank you


Re: Performance Issue with 2.0.0 SNAPSHOT latest builds

Posted by Tilman Hausherr <TH...@t-online.de>.
Am 13.11.2015 um 21:06 schrieb Sridhar So:
> Thanks for reply, I tested with latest SNAPSHOT builds
> https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/preflight-app/2.0.0-SNAPSHOT/  ------> build 1823
> https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/pdfbox-app/2.0.0-SNAPSHOT/  ---------> build 1800 and 1801
>   Font cache rebuild is not happening every time and it is able to use from local store, however build 1800 & 1801 requires Admin privilage.

Re admin priviledge, what OS and version are you using? What is the 
error message?

>   Compared to PDFBox version 1.8.10, 2.0.0 SNAPSHOT builds performance is slow   ( 1.8.10 about 13 seconds, but 2.0.0 SNAPSHOT 1800, 1801 takes 30 seconds. )
>
>   Measured the time difference between 1.8.10 and 2.0.0 SNAPSHOT builds with following code
>   Getting 13 to 19 seconds in 1.8.10, whereas in 2.0.0SNAPSHOT builds 22 to 36 seconds
>    
>                      long t1 =  System.currentTimeMillis() ;
> 			pdDocument = PDDocument.load(is);	
> 			long t2 =  System.currentTimeMillis()  ;
> 			PrinterJob job = PrinterJob.getPrinterJob();
> 		    job.setPageable(new PDFPageable(pdDocument));  //  Version 2.0.0 SNAPSHOT builds
> 			//job.setPageable(new PDPageable(pdDocument)); //  Version 1.8.10
> 		    job.print();	
> 			long t3 =  System.currentTimeMillis()  ;
> 			//printWithPaper(pdDocument, "A4") ;
> 			System.out.println ( " PDDocument load time = "  +
> 				String.valueOf(t2 - t1) + " Printing Time =  " + String.valueOf(t3-t2 ) +
> 				" Total time = " + String.valueOf( (t3 - t1)/1000.0 ) + " seconds "  ) ;
>   
>
>
> Do we have
> Performance fix available in 2.0.0 SNAPSHOTS, if so please give full path and which build?
> Is there a fix available where  Admin privelage is not required?
> Thanks a lot for your reply in advance.

No / No. However for the admin problem, there's a java environment 
variable that can be used. Here's how the place is chosen:

    private File getDiskCacheFile()
     {
         String path = System.getProperty("pdfbox.fontcache");
         if (path == null)
         {
             path = System.getProperty("user.home");
             if (path == null)
             {
                 path = System.getProperty("java.io.tmpdir");
             }
         }
         return new File(path, ".pdfbox.cache");
     }

Maybe that will also solve the performance problem. (Although the fonts 
are only taken the first time)

Tilman

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