You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Array of objects** — each call allocates a JS array of objects with 5 keys each, boxes every value, and puts pressure on the GC — multiplied across 10 000 iterations.
197
199
198
-
**Array of objects** — each row is a JS object `{ id, status, isActive, createdAt, updatedAt }`. The JS engine allocates 100 000 objects with 5 keys each, boxes every value, and puts significant pressure on the GC.
199
-
200
-
**react-native-columnar** — one binary buffer is allocated in C++, all 100 000 rows are written in a single loop, and the buffer pointer is handed to the JS engine as an `ArrayBuffer`. The JS side creates five typed array views (`Int32Array`, `Uint8Array`, `Float64Array`) over the same memory — **zero copies, zero parsing, zero object allocation**.
200
+
**react-native-columnar** — one binary buffer is allocated in C++, all rows are written in a single loop, and the buffer pointer is handed to the JS engine as an `ArrayBuffer`. The JS side creates five typed array views (`Int32Array`, `Uint8Array`, `Float64Array`) over the same memory — **zero copies, zero parsing, zero object allocation**.
201
201
202
202
> Measured on iPhone 16 Pro. Results will vary by device and data shape.
0 commit comments