-
Notifications
You must be signed in to change notification settings - Fork 248
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
qe-wasm: Fix Bytes and scalar lists #4649
Conversation
WASM Size
|
CodSpeed Performance ReportMerging #4649 will not alter performanceComparing Summary
|
🚨 WASM query-engine: 2 benchmark(s) have regressed at least 2%Full benchmark report
After changes in 87d7b5d |
Unlike NAPI engine, we did not have a proper Quaint <-> JS conversion for lists and byte buffers. This PR adds it through introduction of `ToJsValue` trait. Previously, we relied on serde implementation to support this. However, to do proper conversion we need to diverge from what serde is doing and writing `Serialize` implementation by hand is not that easy. Esentially, resons for `ToJsValue` trait introduction are the same as the resons for `FromJsValue` were back in the day: allow simple conversions between rust and JS without low-level serde code. Fix prisma/team-orm#655 Fix prisma/team-orm#644 Fix prisma/team-orm#711
316cc5b
to
87d7b5d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There has been a consistent regression in performance (about 2%) probably due the conversions of JsArgs that before were done by serde directly (and wrongly).
Other than that. The approach is correct.
Benchmarks also got quite flaky in your absence and regressions are often reported on the PRs that don't even touch WASM. |
Unlike NAPI engine, we did not have a proper Quaint <-> JS conversion
for lists and byte buffers. This PR adds it through introduction of
ToJsValue
trait.Previously, we relied on serde implementation to support this. However,
to do proper conversion we need to diverge from what serde is doing and
writing
Serialize
implementation by hand is not that easy. Esentially,resons for
ToJsValue
trait introduction are the same as the resons forFromJsValue
were back in the day: allow simple conversions betweenrust and JS without low-level serde code.
Fix prisma/team-orm#655
Fix prisma/team-orm#644
Fix prisma/team-orm#711