-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate perf/memory regression with components bag #603
Comments
I'd support that. Seems like constructor knows whether we want skeletons or not, so being able to not load them should be a clean architectural division. |
Looks like the difference in memory is nominal between bincode and json. This supports the case for separate keys. JSON
Bincode
|
Looks like my theory on bincode is wrong here. I need to figure out how to collect a performance profile to see where time is being spent. JSON
Bincode
|
In the above profile, 60ms is spent in deserializing fields, which is probably where the performance regression is coming in from. This shows that splitting the keys is the fix here. Interestingly |
@gregtatum We plan to release 0.3 in about 3 weeks. Do you expect this to be unblocked in time for the 0.3 release, or should we punt to 0.4? |
It looks like #380 is now planned for 0.4, can we remove that as a blocker? |
Once I finish #257, @gregtatum should investigate if the issues are solved. If not, then we will need to wait for #380. |
Resolved with #1139. |
Perf: https://unicode-org.github.io/icu4x-docs/benchmarks/perf/components/datetime/
Memory: https://unicode-org.github.io/icu4x-docs/benchmarks/memory/macos-latest/
My initial theories are that these examples are using JSON, which incurs a runtime penalty for loading the data providers compared to bincode. I believe this will mostly disappear with bincode support. One possible mitigation would be to move skeletons into their own key.
Here is the breakdown of the memory for the work_log: https://deploy-preview-3128--perf-html.netlify.app/public/37dy2yqktxz7jw6q8zx8eswg63zwy7jkg498kw0/flame-graph/?globalTrackOrder=0&localTrackOrderByPid=1511-0-1-2-3~&thread=0&transforms=mf-1~mf-2&v=5
icu_datetime::provider::gregory::patterns::_::::deserialize
42% 11.2KBThe text was updated successfully, but these errors were encountered: