The Ou Case

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Performance 170.png
Performance Project

performance.openoffice.org

Quick Navigation

Team

Communication

Activities

About this template



Loading a large plain data file takes very long.

References:

Note that the numbers published in the article compare Excel .xls binary file format with Calc .ods, which is apples and oranges.

Findings:

  • source/filter/xml/xmlsubti.cxx
    • 38% of time spent in ScMyTables::NewColumn() because of replicated use of aTableVec[nTableCount - 1] (vector::operator[])
      Note: percentage may be off due to compilation without optimization to obtain exact line numbers that may result in STLport's vector methods being differently compiled.
      • proposed fix: should obtain the pointer once instead.
    • Similar for other places where aTableVec[xxx] is used.
  • TODO: Check all ScMyTables::.*() and ScMyTableData::.*()
    • Especially for 63342857 calls to AddColumn() and NewColumn() that result in 1168654944 calls to operator[] ...
    • 63081776 calls to AddColumn() originate from ScXMLTableRowCellContext::EndElement()
    • Those are highly suspicious and seem to indicate that too many temporary elements are created for empty columns/cells (needs verification).
Personal tools