You are on page 1of 13

Performance of XML-based format processing

Li Heng
Performance Project Lead

02:00 PM 02:45 PM 2009-11-05

Abstract

OOo has supported well in ODF and some filters and extensions was used to process OOXML in OOo. Both of them are ISO standards. And UOF is another XML-based document format standard in China. More and more document format standards are based on XML. OpenOffice.org was a suite that was supporting the most document format in all Office softwares. So to improve performance of XMLbased format processing is a significant work of OOo.

This presentation will give out some ideas and test results from performance project in order to show how OOo process ODF and other XMLBased formats and how to get time from XMLBased formats processing.

Demand for Document


Larger and larger from time to time More complex More types of media, lots of object

Principle

Focus on particular format, not only to optimize XML format parsing Focus on User Experience

How user behave? How user Feeling?

Loading Phases

Filter detecting Transforming in filter


Meta Settings Style Content

External format need be transformed to native format such as OOXML and UOF

Chart of SW

Data Analysis
Number of Paragraph Loading Time 10 1.73s 100 4.63s 1000 15.7 2000 29

There are only numbers of paragraphs with one or two heading style in a document For this sample the meta,setting, style spent same time. It takes a lot of time that reading ,parsing and creating SwTxtNode and binding style one by one.

Ideas for loading

To start to loading context follow the meta, so we can know which styles and settings we need during we are processing the content. To processing the parts for rendering To read style,floating object,linking-object and setting, with multi-thread. Parallel processing in order to unlock UI because OOo was a single process program, loading and saving block all operation now.

Changed parts saving


Auto-saving Saving document Used methods like redlines or versionning To save changed parts in block status, return to user interface, and then complete whole serializing in a another thread To create index to position the changed node with mapping layer Preprocessing media object

http://performance.openoffice.org

Questions?

Thanks

You might also like