> I don't know if anyone has done any extensive testing of concurrency with
> FOP, so please let us know what problems you run into (the IndexOutOfBounds
> for example), either via this list, or better yet, via Bugzilla so we can
> track and fix the issues. I've fixed a few places where I found concurrency
> issues at one time, but I'm sure there are others I didn't find.

When we attempted to use FOP in a multi-processor, multi-threaded 
Windows NT 4.0 environment, we found that FOP actually worked 
SLOWER than a single processor and/or single-threaded 
environment.  We ran multiple threads that were responsible for 
rendering separate documents.  We were trying to reduce the 
elapsed time necessary to render thousands of relatively small (10-
20 page) documents.

What we found was running multiple FOP threads on a multi-
processor Windows NT box reduced our total throughput.  We 
processed more documents per hour with a single FOP thread than 
we did with multiple FOP threads.  Note that I'm refering to total 
throughput, not documents per thread per hour.

Some analysis pointed to VERY HIGH context switching going on 
when running two FOP threads on a two processor system.  What 
this told us was that the two FOP threads were fighting over the 
same piece(s) of memory continuously.  This context switching went 
away when we ran multiple FOP threads on a single processor 
machine or we ran a single FOP thread on a multi-processor 
machine.  

I spent some time looking at the source code, and noticed a large 
number of statics being declared all throughout FOP.  This may be a 
cause, or it may have something to do in the way the Sun jvm works 
on Windows.  I didn't have the time to dig deeper.  

I don't remember the exact version of FOP we used for the test.  It 
may have been 0.18.1 or 0.19.0-CVS.  

Jim Cotugno
Upstanding
email:      [EMAIL PROTECTED]
home email: [EMAIL PROTECTED]
phone:      949-453-2000
fax:        949-453-2001

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

Reply via email to