-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Replace the `_memCopy` implementation in Dart with `MemoryCopyInstr`. Speeds up copying from and to `Pointer`s by up to a 100x for large structs. TEST=tests/ffi/function_callbacks_structs_by_value_test.dart BENCHMARK=benchmarks/FfiStructCopy/dart/FfiStructCopy.dart Before (x64 JIT): FfiStructCopy.Copy1Bytes(RunTimeRaw): 86.26189953740506 ns. FfiStructCopy.Copy16Bytes(RunTimeRaw): 14.006969563521945 ns. FfiStructCopy.Copy1024Bytes(RunTimeRaw): 8.567228629242734 ns. FfiStructCopy.Copy65536Bytes(RunTimeRaw): 8.469047080663412 ns. After (x64 JIT): FfiStructCopy.Copy1Bytes(RunTimeRaw): 56.79513144264321 ns. FfiStructCopy.Copy16Bytes(RunTimeRaw): 3.562479879234367 ns. FfiStructCopy.Copy1024Bytes(RunTimeRaw): 0.10771875669750132 ns. FfiStructCopy.Copy65536Bytes(RunTimeRaw): 0.02758346614218262 ns. Bug: #43967 Change-Id: I5d51c39a13b8c9522ee88d81bba7365caef70a27 Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64c-try,vm-precomp-ffi-qemu-linux-release-arm-try,vm-precomp-ffi-qemu-linux-release-riscv64-try,vm-kernel-reload-rollback-linux-debug-x64-try,vm-kernel-reload-linux-debug-x64-try,vm-kernel-nnbd-mac-debug-arm64-try,vm-kernel-nnbd-mac-debug-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64c-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/277523 Commit-Queue: Daco Harkes <dacoharkes@google.com> Reviewed-by: Aske Simon Christensen <askesc@google.com>
- Loading branch information
Showing
3 changed files
with
25 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters