Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[birt-dev] CheckIn: Performance enhancement for PDF report, share a CSSEngine in PDF Layout engine

Title: CheckIn: Performance enhancement for PDF report, share a CSSEngine in PDF Layout engine

Summary 

Performance enhancement for PDF report

Bugzilla Bug (s) Resolved:

Description:

Performance of PDF report enhancement, share a CSSEngine in PDF Layout engine.

This check-in reduces about 30% execution time for typical PDF table report.

A serial performance enhancement on PDF report had been done since 2.1.0 final release.

Compared with 2.1.0 final build, performance of PDF report increases about 6 times after this check-in.

Following is a simple summary about performance enhancement.

Test environment:

Test machine: P4/2.66GHz, 1GRAM, Windows XP sp2

Software environment: eclipse 3.2RC6, JDK1.4.2_05, JVM 512m, eclipse plugin test.

        2.1.0 final release     Build20060801   Build20060830   Build20060831(after this check-in)     
Test case 1:

RunAndRenderTask, Simple plain table report, 4 pages, 6 fields each row.        2430ms  710ms   594ms   390ms  
Test case 2:

RunAndRenderTask, Simple plain table report, 220 pages, 5 fields each row.      103003ms        27350ms 20140ms 14600ms
Enhancement    

        Replace all IStyle.setXXX(String value) with setProperty(int index, CSSValue value)     Reduce calls of IStyle.getProperty(int index) in BorderResolver.java.

  1. reduce the creation of Integer objects in area style
  2. Enhance table border drawing algorithm at render time. If the width of border is zero, ignore it directly.
  3. Reduce calls of IStyle.getCssText() in PDFAbstract.java
  4. Fix a bug in OnPageBreakLayoutPageHandle.java when traversing container areas.  Share a CSSEngine in PDF layout engine 




























Test Description:

Manual Test

 Files Edited:

"/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/area/impl/LogicContainerArea.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/area/impl/AreaFactory.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFLayoutEngineContext.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFListLM.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFRegionLM.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTableLM.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFImageBlockContainerLM.java"

"/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFListGroupLM.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFLineAreaLM.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/area/impl/AbstractArea.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/area/impl/LineArea.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTableGroupLM.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFPageLM.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFReportLayoutEngine.java"

 "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/area/impl/ContainerArea.java"

Notes to Build Team:

Notes to Developers:

Notes to QA:

Quotes to Documentation:








Back to the top