My testing hasn't exactly been scientific, so you'll have to take my
comments for what they're worth.

I'm running FOP on an IBM OS/390 mainframe.  I tested running anywhere from
a single thread to up to four threads.  In this environment, two threads
seems to be the "sweet spot" -- overall throughput is improved even though
each transformation takes a bit longer.  Using three and four threads, the
render time for each PDF increases so much that there is no overall gain in
throughput.

I suspect most of this is due to the environment, not necessarily FOP.  I
don't know how many processors are available on the mainframe.  The Java
environment on the mainframe is actually hosted by a Unix emulator (Unix
System Services), not on the native z/OS, so I don't know what effects that
extra layer has.  Additionally, this is a mainframe that is shared
corporate-wide, so use by other batch jobs can significantly affect the
resources (mainly processor) that are available to Java/FOP.

There are probably also some design issues on my end that affect the
performance in a multi-threaded environment.  Now I'm testing with FOP
0.20.5rc my fastest run to date has been with this version -- don't know if
it's coincidence or if it really is faster than 0.20.4.

Also, does anybody have any comments on a favorite XML/XSLT processor??  I
seem to consistently get the best performance using Saxon 6.5.2 and its
embedded XML processor.  It's almost always faster the Xerces/Xalan
combination.  I use SAX events and compiled style sheets to boost
performance.




                                                                                
                                           
                      Jeremias Maerki                                           
                                           
                      <[EMAIL PROTECTED]        To:       [EMAIL PROTECTED]     
                                      
                      enmail.ch>               cc:                              
                                           
                                               Subject:  Re: Multithreading 
with FOP                                       
                      12/19/2002 01:47                                          
                                           
                      PM                                                        
                                           
                      Please respond to                                         
                                           
                      fop-user                                                  
                                           
                                                                                
                                           
                                                                                
                                           




The only known pitfall concerning 0.20.4 is a MT-problem with images.
You can occasionally get NullPointerExceptions when images are loaded.
This has been fixed in 0.20.5rc. I expect 0.20.5rc to work well in a
multithreaded environment although FOP still uses a few ugly construct
like a too frequent use of statics, for example. We're adressing this in
the redesign.

Some best practice that comes to my mind is to only configure FOP once
when the VM starts.

You mention that the average rendering time increases with multiple
threads. Just curious, what about the throughput? Is FOP getting slower
with multiple threads?

On 18.12.2002 22:09:13 Ryan.Asleson wrote:
>
> I'm trying to use FOP 0.20.4 in a multi-threaded environment to produce
> PDFs.  As I increase the number of threads from one or two to three or
> four, the average rendering time per PDF increases significantly.
>
> I realize that the host environment (available memory, number of
> processors, etc etc) can cause this affect, but I was wondering if there
> are any pitfalls, problems , or best practices with using FOP in a
> multi-threaded environment.


Jeremias Maerki


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]







---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to