Re: [xsl] XSL-FO to PDF conversion speed

Subject: Re: [xsl] XSL-FO to PDF conversion speed
From: Adam Retter <adam.retter@xxxxxxxxxxxxxx>
Date: Mon, 30 Sep 2013 10:26:33 +0100
If you have many documents to render, this is a great fit for
parallelism. Personally I would use a kinda producer/consumer pattern,
whereby you have as many consumers as there are threads on the server
where you are executing this. I would have then have the consumers
pull jobs off of the producer and perform your FO transformation. In
this way you should be able to do many documents in parallel and with
the correct technology choice you could scale this across several
servers to get a linear speedup. On the consumer, I would recommend
reusing the same FO processor serially without stopping and starting
the JVM, you need not use a Servlet for this, rather any Java code
that does not terminate the JVM would work. IMHO Akka (with
Clustering) is a perfect fit for this...

On 30 September 2013 09:12, Jesper Tverskov <jesper@xxxxxxxxxxx> wrote:
> Thanks so far.
> The present solution has 12 tables. I could probably do without some
> of them and merge the rest into just 6 tables. That might give me a
> small reduction in time.
> Now, my clients problem is bigger than my 5s for a single
> transformation. They run a batch of 700-800 transformations (still
> very few compared to the millions of runs others face as a challenge).
> Am I right that even for just 700-800 XSLT/FO transformations, there
> is a lot to gain from using FOP in a servlet, or would you advise me
> to go for a commercial FO processor right away?
> And what about the XSLT part. At the moment XALAN is used. My tests
> for a single transformation show that not much is gained from using an
> XSLT 2.0 processor (Saxon) and optimize the stylesheet for 2.0. I can
> hardly measure the difference. Is this still true for a batch of
> 700-800 transformations?
> Even split seconds gained ad up, but could there be other speed
> benefits from using an XSLT 2.0 Saxon processor compared to good old
> XALAN when we are talking about a batch job?
> Regards
> Jesper
> On Mon, Sep 30, 2013 at 3:03 AM, Liam R E Quin <liam@xxxxxx> wrote:
>> On Sun, 2013-09-29 at 12:46 +0200, Jesper Tverskov wrote:
>>> I'm wondering why my FOP 1.0 conversion to a PDF file of just 2 pages
>>> is so slow. We are talking about 5 seconds.
>> Some of that will probably be JVM startup.
>> There are ways to mitigate that (e.g. nailgun) or you could maybe run
>> FOP from a servlet.
>> Without timings, though, it's hard to guess.
>> Liam
>> --
>> Liam Quin - XML Activity Lead, W3C,
>> Pictures from old books:
>> Ankh: freenode/#xml

Adam Retter

skype: adam.retter
tweet: adamretter

Current Thread