Difference between revisions of "Calc/Performance/misc"

From Apache OpenOffice Wiki
Jump to: navigation, search
(use SUBPAGENAME in category sort key for reusability)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Miscellaneous performance optimization opportunities that don't have an own entry under [[Calc/To-Dos/Performance]]/... yet.
 
Miscellaneous performance optimization opportunities that don't have an own entry under [[Calc/To-Dos/Performance]]/... yet.
  
=== In-sheet objects ===
+
== In-sheet objects ==
  
 
With a relatively modest number of in-sheet objects (which are favorite tools of complex spreadsheet creators) things become horribly slow: 30secs to load a small file with ~no data / macros & only 240 list boxes sample [http://www.openoffice.org/issues/show_bug.cgi?id=41164 document].
 
With a relatively modest number of in-sheet objects (which are favorite tools of complex spreadsheet creators) things become horribly slow: 30secs to load a small file with ~no data / macros & only 240 list boxes sample [http://www.openoffice.org/issues/show_bug.cgi?id=41164 document].
Line 7: Line 7:
 
The sheet objects need idly creating in the svx layer; also there is a floating patch to improve VCL's control management performance - wherein some of the problems lie.
 
The sheet objects need idly creating in the svx layer; also there is a floating patch to improve VCL's control management performance - wherein some of the problems lie.
  
=== Large / complex pivot sheets ===
+
== Large / complex pivot sheets ==
  
 
The existing Data Pilot implementation doesn't have a shared normalized form of the data. (ie. with each field reduced to an ordinal, for O(1) lookup). We should implement just such a Data Pilot cache using a representation compatible with the PivotTable cache, and populatable from that on import.
 
The existing Data Pilot implementation doesn't have a shared normalized form of the data. (ie. with each field reduced to an ordinal, for O(1) lookup). We should implement just such a Data Pilot cache using a representation compatible with the PivotTable cache, and populatable from that on import.
  
=== threaded calculation ===
+
== threaded calculation ==
  
Ideally to scale to hyper-threaded machines we need to crunch a workbook's dependency graph & then thread the calcuation.
+
Ideally to scale to hyper-threaded machines we need to crunch a workbook's dependency graph and then thread the calculation.
  
 
Similarly the process of constructing a Data Pilot cache, and (subsequently) collating that data is one that is susceptible to threading.
 
Similarly the process of constructing a Data Pilot cache, and (subsequently) collating that data is one that is susceptible to threading.
  
== Chart Optimization ==
 
  
The existing chart component performs extremely poorly. However - it's likely that optimizing chart2 is a better bet.
 
Having said that, there seem to often be a large number of re-calculation / re-renderings of charts on load that are perhaps realated to a calc/chart2 mis-interaction [jody- substantiate?]
 
  
In addition the chart likes to do (expensive) label / string size calculation for (potentially) tens of thousands of labels it will never use for scatter plots, multiple times each.
+
[[Category:Calc|Performance/{{SUBPAGENAME}}]]
 
+
 
+
 
+
[[Category:Calc|Performance/misc]]
+
 
[[Category:To-Do]]
 
[[Category:To-Do]]
 
[[Category:Performance]]
 
[[Category:Performance]]

Latest revision as of 15:24, 6 March 2009

Miscellaneous performance optimization opportunities that don't have an own entry under Calc/To-Dos/Performance/... yet.

In-sheet objects

With a relatively modest number of in-sheet objects (which are favorite tools of complex spreadsheet creators) things become horribly slow: 30secs to load a small file with ~no data / macros & only 240 list boxes sample document.

The sheet objects need idly creating in the svx layer; also there is a floating patch to improve VCL's control management performance - wherein some of the problems lie.

Large / complex pivot sheets

The existing Data Pilot implementation doesn't have a shared normalized form of the data. (ie. with each field reduced to an ordinal, for O(1) lookup). We should implement just such a Data Pilot cache using a representation compatible with the PivotTable cache, and populatable from that on import.

threaded calculation

Ideally to scale to hyper-threaded machines we need to crunch a workbook's dependency graph and then thread the calculation.

Similarly the process of constructing a Data Pilot cache, and (subsequently) collating that data is one that is susceptible to threading.

Personal tools