Difference between revisions of "Calc/Performance/The Ou case"

From Apache OpenOffice Wiki
Jump to: navigation, search
(apples and oranges)
 
Line 12: Line 12:
 
Findings:
 
Findings:
  
* source/filter/xml/xmlsubti.cxx
+
* [http://svn.services.openoffice.org/opengrok/xref/Current%20(trunk)/sc/source/filter/xml/xmlsubti.cxx source/filter/xml/xmlsubti.cxx]
 
** 38% of time spent in ScMyTables::NewColumn() because of replicated use of aTableVec[nTableCount - 1]  (vector::operator[]) <br> 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.
 
** 38% of time spent in ScMyTables::NewColumn() because of replicated use of aTableVec[nTableCount - 1]  (vector::operator[]) <br> 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.
 
*** proposed fix: should obtain the pointer once instead.

Latest revision as of 20:03, 4 December 2010

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