accessing memoized getter properties of a class model
bench/property-access.benchmark.ts
0%
10.9 µs10.8 µs
instantiating a diverse root
bench/instantiation.benchmark.ts
0%
44.1 µs43.9 µs
mobx-quick-tree ClassModel
bench/cross-framework.benchmark.ts
0%
38 µs37.9 µs
instantiating a large union
bench/create-union.benchmark.ts
0%
56.9 µs56.8 µs
accessing memoized null property of a class model
bench/property-access.benchmark.ts
0%
10.4 µs10.4 µs
mobx-state-tree ClassModel
bench/cross-framework.benchmark.ts
0%
1.1 ms1.1 ms
instantiating a large root
bench/instantiation.benchmark.ts
-1%
2.6 ms2.6 ms
accessing unmemoized getter properties of a class model
bench/property-access.benchmark.ts
-1%
16.2 µs16.4 µs
accessing unmemoized null property of a class model
bench/property-access.benchmark.ts
-1%
11 µs11.2 µs
Ignored
plain mobx
bench/cross-framework.benchmark.ts
Ignored
0%
263.2 µs263.5 µs
mobx-quick-tree types.model
bench/cross-framework.benchmark.ts
Ignored
0%
150 µs149.9 µs
plain es6
bench/cross-framework.benchmark.ts
Ignored
0%
17 µs17 µs
mobx-state-tree
bench/cross-framework.benchmark.ts
Ignored
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>