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

a

events when formula is refreshing ?

a

Cell Data Changes

a

When the data in a cell changes

Range changes

a

Drag-copy / move event

a

DragDropBlock

Move cells

DragDropBlockCompleted

DragFillBlock

Copy or increment

DragFillBlockCompleted

DragMerged

DragMerging

Edit

EditChange

a

When we edit the cell content manually

OnKeyPress

Not triggered by formula reference

Subtopic

Subtopic

EditEnded

EditEnding

EditStarting

UserFormulaEntered

a

When a new formula is inserted

not when refreshed

not when moved

Subtopic

Subtopic

isContextSensitive property in sync functions

a
check isContextSensitive here

check isContextSensitive here

a

Sample in javascript

POC in react

POC in react

Can we get a reference to dependent and precedents formulas (other cells or inline)

getPrecedents and getDependents

a

isBranch

a

findBranchArgument

findTestArgument

useful functions

sheet.getCell

sheet.setValue

sheet.setArray & sheet.setFormulaArray

a

doNotRecalculateAfterLoad

a

getDirtyCells & Cells status

see example of server call

a

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

a

Dyanimc array formulas and spilling

a

List operator

Cell buttons

a

Culture

a