Difference between revisions of "Calc/Performance/Planning"
From Apache OpenOffice Wiki
< Calc | Performance
(point to DPLs) |
(done refactoring area broadcasters) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Performance}} | ||
'''Planning''' page for [[Calc]] performance improvements. For lists of specific To-Dos, InProgress and Done see [[Calc/Performance]]. | '''Planning''' page for [[Calc]] performance improvements. For lists of specific To-Dos, InProgress and Done see [[Calc/Performance]]. | ||
{| class="prettytable" | {| class="prettytable" | ||
|- | |- | ||
− | ! What || Solves / Benefit | + | ! What || Solves / Benefit || Status / Details |
|- | |- | ||
− | | Create test case documents for specific problems. || Reliable measurement for profiling. | + | | 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. | + | | 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. <br> 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. <br> 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. || |
|- | |- | ||
− | | Store shared formulas in ODF, possibly incompatible file format change. || Less compilation time for recurring formulas when loading. | + | | 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. || | ||
[[Category:Calc|! To-Dos/Performance/Planning]] | [[Category:Calc|! To-Dos/Performance/Planning]] |
Latest revision as of 15:40, 24 April 2009
|
---|
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. |