Difference between revisions of "Calc/Performance/CellStylesOfOoxML"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 1: Line 1:
 
If there are a lot of cell styles in MS 2007 .xlsx file, when loading the file in Aoo,
 
If there are a lot of cell styles in MS 2007 .xlsx file, when loading the file in Aoo,
 
it will take about 20 seconds to create the cell styles.
 
it will take about 20 seconds to create the cell styles.
 +
 
After analyze the sample file, there are lots of duplicated cell style items in the
 
After analyze the sample file, there are lots of duplicated cell style items in the
 
original file,and such file maybe created by script or other tools. So a method must
 
original file,and such file maybe created by script or other tools. So a method must
 
be used to get rid of the duplicated unused cell styles.
 
be used to get rid of the duplicated unused cell styles.
 +
 +
In MS 2007 .xlsx file,there are 3 items to record the cell style.
 +
*cellStyle
 +
*cellStyles
 +
*cellStyleXfs
 +
 +
 +
  
 
Here is the result data by the rational purify.
 
Here is the result data by the rational purify.

Revision as of 02:47, 21 September 2012

If there are a lot of cell styles in MS 2007 .xlsx file, when loading the file in Aoo, it will take about 20 seconds to create the cell styles.

After analyze the sample file, there are lots of duplicated cell style items in the original file,and such file maybe created by script or other tools. So a method must be used to get rid of the duplicated unused cell styles.

In MS 2007 .xlsx file,there are 3 items to record the cell style.

  • cellStyle
  • cellStyles
  • cellStyleXfs



Here is the result data by the rational purify.

Calls: 178,325 F+D: 25,128,429

Calls: 4,268 F+D: 24,404,739

1) ScCellRangesBase::setPropertyValues Calls: 45,336 F+D: 13,999,231

2) ScCellRangesBase::setPropertyValue Calls: 36,334 F+D: 8,745,959

3) ScStyleObj::setPropertyValues Calls: 28,282 F+D: 10,547,312

1)oox::xls::OoxSheetDataContext::onCreatContext 1) oox::xls::OoxSheetDataContext::importRow

oox::xls::WorksheetData::writeXfldRowRangeProperties

oox::xls::StylesBuffer::writeCellXfToPropertySet

oox::xls::StylesBuffer::writeFontToProperSet

oox::xls::StylesBuffer::writeBorderToProperSet

oox::xls::Allignment::writeToPropertySet

oox::xls::StylesBuffer::writeFillToPropertySet

4) ScStyleObj::setPropertyValue Calls: 36,334

F+D: 8,745,959

Calls:178,308

F+D: 5,538,047

Calls: 158,771

F+D: 4,810,522

1) ScCellRangesBase::setPropertyValues

2) ScCellRangesBase::setPropertyValue

3) ScStyleObj::setPropertyValues

2)oox::xls::OoxSheetDataContext::onEndElement 1) oox::xls::WorksheetHelper::setCellFormat

oox::xls::WorksheetData::writeXfldRowRangeProperties

oox::xls::StylesBuffer::writeCellXfToPropertySet

oox::xls::StylesBuffer::writeFontToProperSet

oox::xls::StylesBuffer::writeBorderToProperSet

oox::xls::Allignment::writeToPropertySet oox::xls::StylesBuffer::writeFillToPropertySet 4) ScStyleObj::setPropertyValue Calls: 1 F+D: 21,475,924

Calls: 14,234

F+D: 21,419,377

1) ScCellRangesBase::setPropertyValues 2) ScCellRangesBase::setPropertyValue 3) ScStyleObj::setPropertyValues

3)oox::xls::OoxStylesFragement::finalizeImport 1) oox::xls::CellStyle::createStyle

oox::xls::StylesBuffer::writeStylesXfToPropertySet

oox::xls::StylesBuffer::writeFontToProperSet

oox::xls::StylesBuffer::writeBorderToProperSet

oox::xls::Allignment::writeToPropertySet

oox::xls::StylesBuffer::writeFillToPropertySet 4) ScStyleObj::setPropertyValue


The oox::xls::CellStyle::createStyle is called 14,234 times, and the F+D: 21,419,377

Personal tools