OL Learn

Improve generation time of one page PDF

Our process receives a http request, with a load of 50 request per minute.
Each request triggers an all-in-one action that consist in the following steps:

  • A simple datamapper that maps xml tags to record fields
  • A template that holds a few simple scripts with a simple PDF background
  • A basic job for PDF generation
  • A simple output with virtual stationary enable
    Then the workflow process, returns the one page PDF to each request.
    Only this action, the all-in-one, takes up 7 seconds to produce
    the PDF output.
    Our server counts with an Intel Xeon E5 2609 with 6 cores and 16 GB RAM.
    We tried to adjust the connect server engines configuration, but
    that produced no changes in the performance. Also we check the anti-virus
    exclusions as the documentation recommends.
    We try in a different connect server with the same configuration and the results were the same.
    Any sugestion or recomendation will be really apreciate, if any further information is required
    there is no problem.


As you know, performance issues are highly dependent on hardware performance, resources, optimization, etc.
The following article will be helpful

You can speed up thinks through optimization as tosuji mentioned (in any case a good idea).

Do you really need that xml in a datamapper? If you have the possibility to get json through http request you could use these data directly in the design template so you dont need the datamapping (saves a bit of time).

And maybe using the Connect REST API instead of the plugin could speed up things too.

But from my experience the biggest speed booster is a really fast hard drive.
We have a test pc here with a M.2 NVMe hard drive with a read/write speed around 1600 MB/s (ssd has a read/write speed around 500 MB/s, a standard hdd around 100 MB/s) and we had to test a similar job like yours. It took around 4 seconds from http request start to the response as pdf, without optimization of the template. The input xml had around 1.500 lines for one record.