2022-01-25 Performance plan
Cool stuff
Culture
Cell buttons
Dyanimc array formulas and spilling
List operator
Let for global variables declaration
Components
Async custom formula
Batching and Queue
Analysis
Reducing
Execution
Services
Pre-fetch
SQLite
Using another layer on top
Indexing
Steps
Reprendre tests d'origine
load dictionary in-memory
Change blocks / experiments
Demonstrate SpreadJS needs to work on their side
Experiments
Spreadjs event ?
Use sync functions
Way to retrieve row and cell
How to deal with dependencies
Acceptable that the UI freeze
Bypass workflow
direct call to dictionary
Replace SQLite with flat file / dictionary
Keep workflow
Paths
see example of server call
getDirtyCells & Cells status
doNotRecalculateAfterLoad
useful functions
sheet.setArray & sheet.setFormulaArray
sheet.setValue
sheet.getCell
isBranch
findTestArgument
findBranchArgument
Can we get a reference to dependent and precedents formulas (other cells or inline)
getPrecedents and getDependents
Is there a way to find the address of a cell / parent caller
isContextSensitive property in sync functions
POC in react
Sample in javascript
check isContextSensitive here
events when formula is refreshing ?
UserFormulaEntered
not when moved
not when refreshed
When a new formula is inserted
Edit
EditStarting
EditEnding
EditEnded
EditChange
Subtopic
Not triggered by formula reference
When we edit the cell content manually
OnKeyPress
Drag-copy / move event
DragMerging
DragMerged
DragFillBlockCompleted
DragFillBlock
Copy or increment
DragDropBlockCompleted
DragDropBlock
Move cells
Range changes
Cell Data Changes
When the data in a cell changes
Check context and events usage here
Other system than SQLite
Multi-threading
Caching
Smart & statistics
SpreadJS engine
Async formula perf