Skip to content

Master cell positions lul#8867

Open
LucasLefevre wants to merge 1 commit into
masterfrom
master-cell-positions-lul
Open

Master cell positions lul#8867
LucasLefevre wants to merge 1 commit into
masterfrom
master-cell-positions-lul

Conversation

@LucasLefevre
Copy link
Copy Markdown
Collaborator

Description:

cells imported in
3ad9143: Mean: 2611.88 ms, StdErr: 5.33 ms
354c592: Mean: 2368.07 ms, StdErr: 22.72 ms → 🟢 (vs prev: -9%, Δ=-243.81 ms, combined StdErr=23.33 ms, |Δ|/SE=-10.4x; n=20)

evaluate all cells
3ad9143: Mean: 2327.14 ms, StdErr: 3.84 ms
354c592: Mean: 2274.53 ms, StdErr: 5.69 ms → 🟢 (vs prev: -2%, Δ=-52.61 ms, combined StdErr=6.86 ms, |Δ|/SE=-7.7x; n=20)

START
3ad9143: Mean: 3011.99 ms, StdErr: 5.44 ms
354c592: Mean: 2930.64 ms, StdErr: 6.18 ms → 🟢 (vs prev: -3%, Δ=-81.35 ms, combined StdErr=8.23 ms, |Δ|/SE=-9.9x; n=20)

Model created in
3ad9143: Mean: 5776.26 ms, StdErr: 7.42 ms
354c592: Mean: 5444.51 ms, StdErr: 24.84 ms → 🟢 (vs prev: -6%, Δ=-331.74 ms, combined StdErr=25.93 ms, |Δ|/SE=-12.8x; n=20)

Legend:
⚫: no measurable change |Δ|/SE < 2
🔴: slower Δ > 0 and |Δ|/SE >= 2
🟢: faster Δ < 0 and |Δ|/SE >= 2
Task: TASK_ID

review checklist

  • feature is organized in plugin, or UI components
  • support of duplicate sheet (deep copy)
  • in model/core: ranges are Range object, and can be adapted (adaptRanges)
  • in model/UI: ranges are strings (to show the user)
  • undo-able commands (uses this.history.update)
  • multiuser-able commands (has inverse commands and transformations where needed)
  • new/updated/removed commands are documented
  • exportable in excel
  • translations (_t("qmsdf %s", abc))
  • unit tested
  • clean commented code
  • track breaking changes
  • doc is rebuild (npm run doc)
  • status is correct in Odoo

@robodoo
Copy link
Copy Markdown
Collaborator

robodoo commented Jun 4, 2026

Pull request status dashboard

Comment thread src/plugins/core/sheet.ts
Cell positions were stored across two plugins kept in
sync via the UPDATE_CELL_POSITION command.

Because cell ids are allocated and cells created by
CellPlugin while the positions lived in SheetPlugin, every imported
cell had to dispatch one UPDATE_CELL_POSITION command just to wire
the two together.

Move everything into CellPlugin, which already owns id allocation
and cell storage:

CellPlugin also takes over shifting cells on row/column insert/delete: it
owns the maps and reacts to ADD_COLUMNS_ROWS / REMOVE_COLUMNS_ROWS to
shift the affected cells.

SheetPlugin keeps the header count and pane bookkeeping

With nothing left dispatching it, the UPDATE_CELL_POSITION command is
removed entirely

Large formula dataset
---------------------

cells imported in
  3ad9143:  Mean: 1721.28 ms, StdErr: 2.56 ms
  a760bb8af:  Mean: 1605.91 ms, StdErr: 3.52 ms → 🟢 (vs prev: -7%, Δ=-115.36 ms, combined StdErr=4.35 ms, |Δ|/SE=-26.5x; n=20)

evaluate all cells
  3ad9143:  Mean: 412.07 ms, StdErr: 6.45 ms
  a760bb8af:  Mean: 374.96 ms, StdErr: 1.68 ms → 🟢 (vs prev: -9%, Δ=-37.11 ms, combined StdErr=6.66 ms, |Δ|/SE=-5.6x; n=20)

Model created in
  3ad9143:  Mean: 2353.99 ms, StdErr: 7.67 ms
  a760bb8af:  Mean: 2191.05 ms, StdErr: 3.84 ms → 🟢 (vs prev: -7%, Δ=-162.94 ms, combined StdErr=8.57 ms, |Δ|/SE=-19.0x; n=20)

Timesheet bunch tool
--------------------

cells imported in
  3ad9143:  Mean: 2633.01 ms, StdErr: 6.14 ms
  a760bb8af:  Mean: 2372.45 ms, StdErr: 21.62 ms → 🟢 (vs prev: -10%, Δ=-260.56 ms, combined StdErr=22.48 ms, |Δ|/SE=-11.6x; n=20)

evaluate all cells
  3ad9143:  Mean: 2347.90 ms, StdErr: 3.87 ms
  a760bb8af:  Mean: 2299.26 ms, StdErr: 9.31 ms → 🟢 (vs prev: -2%, Δ=-48.64 ms, combined StdErr=10.08 ms, |Δ|/SE=-4.8x; n=20)

Model created in
  3ad9143:  Mean: 5826.98 ms, StdErr: 8.46 ms
  a760bb8af:  Mean: 5484.79 ms, StdErr: 24.95 ms → 🟢 (vs prev: -6%, Δ=-342.19 ms, combined StdErr=26.35 ms, |Δ|/SE=-13.0x; n=20)

Legend:
  ⚫: no measurable change |Δ|/SE < 2
  🔴: slower Δ > 0 and |Δ|/SE >= 2
  🟢: faster Δ < 0 and |Δ|/SE >= 2

Task: 6277452
@LucasLefevre LucasLefevre force-pushed the master-cell-positions-lul branch from 2bfbd6a to 6089d4f Compare June 5, 2026 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants