Difference between revisions of "Calc/Performance/querying data within functions"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(use SUBPAGENAME in category sort key for reusability)
Line 29: Line 29:
  
  
[[Category:Calc|Performance/querying_data_within_functions]]
+
[[Category:Calc|Performance/{{SUBPAGENAME}}]]
 
[[Category:Performance]]
 
[[Category:Performance]]
 
[[Category:To-Do]]
 
[[Category:To-Do]]
 
[[Category:InProgress]]
 
[[Category:InProgress]]

Revision as of 15:21, 6 March 2009


An internal customer's document (sorry, can't publish) doing lookup queries that don't fit into the current caching strategy.

Findings:

  • 8% in 51613353 calls to com::sun::star::i18n::casefolding::getNextChar() via
    • 39696595 calls to utl::TransliterationWrapper::isEqual() via
      • ScTable::ValidQuery() via
        • 8888 calls to ScQueryCellIterator::GetThis() via
          • lcl_LookupQuery()
  • 5% in ScTableValidQuery() most in String() and ~String() of aCellStr
  • 200873636 calls to com::sun::star::i18n::casefolding::getNextChar() via
    • 33173401 calls to com::sun::star::i18n::Transliteration_caseignore::compare()
  • 5% in com::sun::star::i18n::oneToOneMappingWithFlag::find()
    • Replicated mpIndex[high] access, might be better using temporary pointer.
  • 5% in com::sun::star::i18n::casefolding::getValue()
  • 58% overall in ScTable::ValidQuery() and below
    • TODO: Cache results of ValidQuery()? Similar to ScLookupCache?
  • 11% overall in 27341713 calls to ScBroadcastAreaSlot::StartListeningArea() and below, of which 10% are in ::std::set::insert() and below.
    • TODO: refactor implementation of broadcast slots.
Personal tools