Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
I measured changed-prop construction and mounting on an ARM64 Android emulator. The benchmark uses the current Three fresh process runs, two warmups and seven measured samples per case. The table uses a cached
The 17-character ASCII case regresses from about 175 ns to 228 ns. Retaining the JNI value costs more than the tiny STL conversion in that case. Larger strings and containers improve in all three process runs. The direct path moves Java object creation into prop construction. The mounting phase only borrows the retained reference and calls the setter, around 20-26 ns here. The separate construction measurement includes destruction of each entry, including its global reference. Snapshot copies stay around 3-5 ns. This excludes the common RawProps lookup/equality check, UI dispatch, Fabric scheduling, and the work done inside a real view setter. An unchanged prop reuses its entry and skips conversion. These numbers measure prop conversion and ownership, not full view latency. All 180 identity/value checks passed across both cached and uncached JNI contexts. The uncached context also improved for the five larger inputs and regressed for short ASCII. The same binary contains both paths, built with |
56888e0 to
2c60366
Compare
2c60366 to
11aa95d
Compare
|
Re-ran against The short-ASCII confirmation uses 100,000 operations per sample, three warmups, eleven measured samples, and three fresh process runs. Times below are medians of the three process medians. The overhead range compares STL and
The full six-input sweep kept the previous iteration counts: two warmups, seven measured samples, and three fresh processes. Cached-JNI totals:
The short batches were noisy for ASCII: their STL/current ratios crossed 1.0. That prompted the longer check above, where This measures changed-prop conversion, the actual immutable Android 16 / API 36 ARM64 emulator, Short-ASCII total, per-process medians (ns)
|
11aa95d to
e8ff58e
Compare
e8ff58e to
a5cb707
Compare
a5cb707 to
6beb3d2
Compare
6beb3d2 to
f36ed6e
Compare
f36ed6e to
1a5879e
Compare
Stores retained JNI values directly in Fabric props and converts them with the Kotlin JSI converters. C++ interop is generated only for props that actually need it.
Validation: Nitrogen typecheck and full spec generation. Generated output is included.