perf: materialize result rows on demand
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- javascript, react-native, sqlite
- Bereich
- databases, mobile-dev, performance
Rechercherichtung
Start with the managed query wrapper and PR #389's shared positional storage. Define and measure first-row, partial, and full consumption behavior, including repeated-index identity, unchanged eager getters and _array behavior, and native/JavaScript memory release. Done means the benchmarks and external-memory tracking cover the requested cases without changing the existing eager contract.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The managed query wrapper reads result.results as soon as a query finishes. This converts every returned row into a JavaScript object even when a caller only asks for rows.item(0) or renders a small visible subset. PR #389 reduces native allocation and copying, but its converter still creates the complete JavaScript array on that first getter read.
Add an opt-in native-backed result whose row access converts and caches individual JavaScript rows on demand. Repeated access to an index should return the same row object, and requesting all rows should produce the same values and order as the existing eager API. Keep the current eager result contract unchanged, including _array and repeated getter behavior.
This work can build on #389's shared positional storage. It would reduce JavaScript conversion for partial consumers, but SQLite would still step and store the entire native result. Track the native allocation with Nitro's external-memory reporting and release it when the result is no longer referenced. Compare first-row latency, partial consumption, full consumption, and peak native/JavaScript memory on Release devices.
Related: #30, #62, #389. A bounded cursor is separate work because lazy conversion alone cannot cap native result memory.
- Vorherrschende Sprache
- C
- Sterne
- 582
- Forks
- 53
- Ø Merge
- 1 T. 17 Std.
- Gemergte PRs (30 T.)
- 10
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus margelo/react-native-nitro-sqlite
-
area:api area:runtime enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
margelo/react-native-nitro-sqlite#402 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:api area:runtime enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 28/100
margelo/react-native-nitro-sqlite#401 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:api area:runtime enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
margelo/react-native-nitro-sqlite#400 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:api area:runtime enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 28/100
margelo/react-native-nitro-sqlite#399 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:api area:runtime enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 48/100
margelo/react-native-nitro-sqlite#397 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in margelo/react-native-nitro-sqlite
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
onehumanbeing/esp32-iphone-agent#118 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:http-gateway decision priority:low status:needs-info type:feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
crazy-goat/php-fpm-ng#1093 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
micropython/micropython#19906 ·
Maintainer antworten meist innerhalb von 1 Tag
-
QOI: QOI_OP_RUN does not update the previously seen pixels, corrupting qoi_test_images/edgecase.qoiEvtl. vergeben @manit2004 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
python-pillow/Pillow#10452 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:data coverage
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 83/100
reacher-z/Awesome-CUA#4804 ·
Maintainer antworten meist innerhalb von 19 Tagen