Closed Robbepop closed 3 months ago
Attention: Patch coverage is 95.00000%
with 1 line
in your changes missing coverage. Please review.
Project coverage is 80.47%. Comparing base (
c3dc480
) to head (cbd684a
).:exclamation: Current head cbd684a differs from pull request most recent head afc3c5f
Please upload reports for the commit afc3c5f to get more accurate results.
Files | Patch % | Lines |
---|---|---|
crates/wasmi/src/engine/executor/instrs/memory.rs | 93.75% | 1 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Unfortunately, despite the triviality of the changes introduced by this PR local benchmarks indicate extreme performance regressions of 10-20% across the board. Probably the Rust/LLVM optimization heuristics for optimizing the loop+match construct in the interpreter's hot path got confused by this ... again.
https://github.com/wasmi-labs/wasmi/pull/1075/commits/afc3c5f82630346c9845a1cb8667fb580c684d00 helped to eliminate all locally observed performance regressions.
Locally this yielded a performance improvement for our bulk-ops benchmark test case by roughly 3.5%. The local test uses
memory.copy
andmemory.fill
with 5000 bytes per operation. Note that performance wins for bulk-ops with smaller lengths are going to be way more significant.