Perf-Onyx-optimize-get-all#95511
Conversation
|
|
|
@mkhutornyi Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
| "react-native-nitro-modules": "0.35.0", | ||
| "react-native-nitro-sqlite": "9.6.0", | ||
| "react-native-onyx": "3.0.88", | ||
| "react-native-onyx": "github:Expensify/react-native-onyx#492160a7e981a90ab458978dce5d1624938cb16c", |
There was a problem hiding this comment.
Onyx PR was merged so bump Onyx version
| "react-native-nitro-modules": "0.35.0", | ||
| "react-native-nitro-sqlite": "9.6.0", | ||
| "react-native-onyx": "3.0.88", | ||
| "react-native-onyx": "github:Expensify/react-native-onyx#492160a7e981a90ab458978dce5d1624938cb16c", |
There was a problem hiding this comment.
This will need to bump to 3.0.91, but there are some other versions in the queue that need to be done first. namely Expensify/react-native-onyx#799 and Expensify/react-native-onyx#801
|
@rinej Could you put this PR into draft state? As stated by Rory we still have some PRs in the bump queue before we get into this one. |
Explanation of Change
Bumps react-native-onyx to pull in Expensify/react-native-onyx#805, which optimizes SQLiteProvider.getAll().
Previously getAll() fetched every row from keyvaluepairs and ran JSON.parse once per row (N parses) to hydrate the Onyx cache at startup. It now asks SQLite to aggregate the whole table into a single JSON string.
Fixed Issues
$ #89652 (comment)
PROPOSAL:
Tests
Offline tests
QA Steps
Same as Tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)Avatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android-getAll-Perf.mp4
Android: mWeb Chrome
iOS: Native
iOS-getAll-Perf.mp4
iOS: mWeb Safari
MacOS: Chrome / Safari