[
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.
- reduce the creation of Integer objects in area style
- Enhance table border drawing algorithm at render time. If the width of border is zero, ignore it directly.
- Reduce calls of IStyle.getCssText() in PDFAbstract.java
- 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: