Calc/Performance/Planning
From Apache OpenOffice Wiki
< Calc | Performance(Redirected from Calc/To-Dos/Performance/Planning)
|
---|
Quick Navigation Team Communication Activities |
About this template |
Planning page for Calc performance improvements. For lists of specific To-Dos, InProgress and Done see Calc/Performance.
What | Solves / Benefit | Status / Details |
---|---|---|
Create test case documents for specific problems. | Reliable measurement for profiling. | InProgress, ongoing effort |
Profile loading and saving documents. | Have comparable numbers for before/after scenarios. | |
Implement incremental saving by writing just changed content if possible. | Avoid rewriting the entire document if just some cell data was changed. | Calc/Performance/Incremental_Saving |
Optimize some string handling in compiler and number parser. Pre detection of simple operators, separators, parentheses, ... | Less toUpper() calls, temporary String instances, ... | Done, Calc/Performance/string_handling_in_formula_compiler |
Refactor area broadcasters to not use a single ::std::set per slot if possible. Break up the document-wide area broadcaster structure into per-sheet containers. |
Because of the unique set requirement and the underlying tree implementation, inserting area broadcasters to large sets takes a lot of time. Less comparisons while inserting ranges to listen to. Less elements to search when broadcasting a change. |
Done, Calc/Performance/Refactoring_Area_Broadcasters |
After load, compile only formulas and their dependents needed in the active sheet. Postpone compilation of other formulas to the point when needed, respectively compile in background. | Less waiting time after document load, faster view of last active sheet. | Calc/Performance/Compile_Formulas_on_Demand |
One stream per sheet in ODF, incompatible file format change. | Prerequisite for on-demand loading of sheets and storing only changed sheets. | |
Load non-active sheets on demand. | Less data to load initially, faster view of the last active sheet. | |
Save only changed sheets. | Possibly only one sheet out of many must be saved again. | |
Test whether saving data-only changes can be done without having to recreate the entire storage, replacing only the data changed in stream. | Avoid the overhead of document storage. | |
Implement shared formulas. | Less memory consumption for contiguous ranges of recurring similar formulas. | |
Store shared formulas in ODF, possibly incompatible file format change. | Less compilation time for recurring formulas when loading. |