FYI, here is the processing we do to generate a report: 

1) Stored Proc returns 1 or more (up to 7 for a lab report) Result Sets
which for the most part represent the different levels of data (report,
study, doctor, patient, visit, test, analyte, etc.)

2) These result sets are converted to XML strings via built-in Oracle
classes

3) The app combines the XML strings into one XML DOM object, which is the
data portion of the report

4) For PDF output, the XML DOM is transformed to xsl:fo (DOM) via xslt

5) The xsl:fo DOM is transformed to PDF via FOP


As far as performance, for large reports step (5) becomes a
memory/processing issue long before the DOM sizes or XSLT transformation
become a problem. Step (2) seems to be the next biggest resource consumer. 

I know there are steps I can take to minimize the memory needs of FOP. But
as far as concurrent processing, which I assume is a CPU usage issue, I'm
not sure.


Matt Savino




> -----Original Message-----
> From: Savino, Matt C [mailto:[EMAIL PROTECTED]
> Sent: Thursday, June 06, 2002 2:17 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: Performance Guidance
> 
> 
> I mean every other thread has to wait. I have the FOP 
> processor wrapped in a
> stateless session bean and I limit the number of instances of 
> that bean to
> one. This is because of the serious performance drop-off we 
> see when FOP is
> run more than once concurrently. I'm still working out some 
> of the details.
> 
> 
> Matt Savino
> 
> 
> 
> 
> > -----Original Message-----
> > From: Zahigian, Mike [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, June 06, 2002 2:13 PM
> > To: '[EMAIL PROTECTED]'
> > Subject: RE: Performance Guidance
> > 
> > 
> > Matt, I'm not sure what you mean by a "one FOP processing thread per
> > appserver instance"?
> > 
> > J., I am getting data out of some javabeans in the form of 
> > xml, then this
> > xml is transformed using a stylesheet, then another 
> > transformation takes
> > place to create the xsl:fo and then FOP takes over.  I'll go 
> > ahead and try
> > and profile--you think the bottleneck might be in the 
> > transformations and
> > not in the final rendering?  Do you have a profiler you can 
> recommend?
> > 
> > Thanks very much for the feedback.
> > 
> > Mike Z.
> > 
> > -----Original Message-----
> > From: Savino, Matt C [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, June 06, 2002 1:51 PM
> > To: '[EMAIL PROTECTED]'
> > Subject: RE: Performance Guidance
> > 
> > 
> > I am curently working on a system to only allow one FOP 
> > processing thread
> > per appserver instance. You can search my earlier posts for some
> > benchmarking results.
> > 
> > 
> > Matt Savino
> > 
> > Senior Systems Analyst
> > Quest Diagnostics Inc.
> > 33608 Ortega Hwy
> > Building C
> > San Juan Capistrano, CA 92690
> > 949.728.4832
> > cel - 310-344-0889
> > pg - 949-452-4566
> > 
> > 
> > 
> > > -----Original Message-----
> > > From: J.Pietschmann [mailto:[EMAIL PROTECTED]
> > > Sent: Thursday, June 06, 2002 1:47 PM
> > > To: [EMAIL PROTECTED]
> > > Subject: Re: Performance Guidance
> > > 
> > > 
> > > Zahigian, Mike wrote:
> > > > I am using FOP to take a single page of XSL:FO content and 
> > > convert to PDF.
> > > > I have embedded FOP in a servlet.  When I have one user 
> > > requesting a page it
> > > > takes about 6 or 7 seconds to get the page formatted as 
> > > PDF.  It seems like
> > > > each additional simultaneous request pushes the response 
> > > time by 6 or 7
> > > > seconds.  So, if 10 users request pages at about the same 
> > > time, the 10th
> > > > user gets his page back in about a minute--and this is only 
> > > one page.  
> > > > 
> > > > Is this the performance I should expect?  What the ideal 
> > > way to handle the
> > > > rendering process?  Should I create a Rendering object that 
> > > had a rendering
> > > > method or should I simply have a class with one static 
> > > method that renders?
> > > > Any guidance on how to embed FOP and get better response time is
> > > > appreciated.
> > > 
> > > The design of the embedding hardly matters for performance.
> > > The complexity of the layout usually matters.
> > > 
> > > How much time does FOP need to render your FO from the command
> > > line? Does the time include the XSL transformation or is it FO
> > > rendering only? Use the -d switch to get timings.
> > > 
> > > Do you use JDK1.3? Is HotSpot enabled? FOP is much slower on
> > > JDK 1.2 and earlier.
> > > 
> > > Try to isolate the steps. Apply a profiler. You might find
> > > bottlenecks where you'd expect them last.
> > > In your case, I strongly suspect the bottleneck is data retrieval,
> > > not FO rendering, 7 seconds for a page sounds too much. You ought
> > > to get 1-2 pages per second on moderatly dated machines.
> > > 
> > > J.Pietschmann
> > > 
> > > 
> > 
> 
> 

Reply via email to