You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Berin Loritsch <bl...@infoplanning.com> on 2000/06/06 14:04:52 UTC

Performance improvement suggestion

Is there any way that we can design FOP so that once a page is
fully rendered, it is serialized?  Combining that with SAX mode
could speed up both real and perceived performance.  This type
of change would probably require a major version number change,
but in the long run I think it would be worth it.

In a wired world, perceived performance is just as important as
real performance.  That's why HTML designers adopted the
practice of specifying all dimensions in tables and images.  The
download takes just as long, but the user sees something rendering
while it is downloading.

To use the example from another thread, a company has a multiple
hundred page report that measures 8 MB in size once it is rendered.
With a regular modem, that report will take at least 20 minutes to
download.  We will say that it takes 25 minutes to render for the
sake of argument.  With the current rendering model, which requires
the report to be read into a DOM, manipulated, and rendered
completely in memory, the user won't see the report for 55 minutes.
If we rearchitect to not only use SAX events, but also so that it
serializes a page as it is completed we could theoretically get it
in the hands of the user in 25 minutes (due the net lag and other
factors, it would probably be more like 30 minutes).  Notice, that
I didn't change the amount of time for rendering.  To me we could
create a memory lean implementation that could (as a result of
less garbage collection happening) even render the file quicker.