gadget-inc
mobx-quick-tree
BlogDocsChangelog

Optimize fast getter memory usage by replacing symbol-based memoization

#132Closed
Comparing
devin/1758110146-optimize-fast-getter-memory
(
b029726
) with
main
(
cb4c043
)
CodSpeed Performance Gauge
×4.6
Improvements
1
Untouched
11
Ignored
4

Benchmarks

Improved

instantiating deep references
bench/create-references.benchmark.ts
CodSpeed Performance Gauge
×4.6
360.6 µs78.9 µs

Passed

instantiating a small root
bench/instantiation.benchmark.ts
CodSpeed Performance Gauge
+1%
28.6 µs28.4 µs
instantiating one reference
bench/create-references.benchmark.ts
CodSpeed Performance Gauge
0%
35.1 µs34.9 µs
accessing memoized getter properties of a class model
bench/property-access.benchmark.ts
CodSpeed Performance Gauge
0%
10.9 µs10.8 µs
instantiating a diverse root
bench/instantiation.benchmark.ts
CodSpeed Performance Gauge
0%
44.1 µs43.9 µs
mobx-quick-tree ClassModel
bench/cross-framework.benchmark.ts
CodSpeed Performance Gauge
0%
38 µs37.9 µs
instantiating a large union
bench/create-union.benchmark.ts
CodSpeed Performance Gauge
0%
56.9 µs56.8 µs
accessing memoized null property of a class model
bench/property-access.benchmark.ts
CodSpeed Performance Gauge
0%
10.4 µs10.4 µs
mobx-state-tree ClassModel
bench/cross-framework.benchmark.ts
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
instantiating a large root
bench/instantiation.benchmark.ts
CodSpeed Performance Gauge
-1%
2.6 ms2.6 ms
accessing unmemoized getter properties of a class model
bench/property-access.benchmark.ts
CodSpeed Performance Gauge
-1%
16.2 µs16.4 µs
accessing unmemoized null property of a class model
bench/property-access.benchmark.ts
CodSpeed Performance Gauge
-1%
11 µs11.2 µs

Ignored

plain mobx
bench/cross-framework.benchmark.ts
Ignored
CodSpeed Performance Gauge
0%
263.2 µs263.5 µs
mobx-quick-tree types.model
bench/cross-framework.benchmark.ts
Ignored
CodSpeed Performance Gauge
0%
150 µs149.9 µs
plain es6
bench/cross-framework.benchmark.ts
Ignored
CodSpeed Performance Gauge
0%
17 µs17 µs
mobx-state-tree
bench/cross-framework.benchmark.ts
Ignored
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms

Commits

Click on a commit to change the comparison range
Base
main
cb4c043
×4.5
Optimize fast getter memory usage by replacing symbol-based memoization with direct property storage - Replace per-property memo symbols with direct instance property storage using _propertyName_memo - Use as initial value on prototype instead of symbol-based tracking - Update fast-instantiator to use new property naming scheme for snapshotted views - Reduces memory overhead by eliminating per-property symbols and symbol lookup overhead - All tests pass including critical memoization tests for undefined values Co-Authored-By: Harry Brundage <harry.brundage@gmail.com>
f5dda35
25 days ago
by devin-ai-integration[bot]
+2.24%
Fix lint: remove unused snapshotProcessor import Co-Authored-By: Harry Brundage <harry.brundage@gmail.com>
b029726
25 days ago
by devin-ai-integration[bot]
© 2025 CodSpeed Technology
Home Terms Privacy Docs