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