mirror of
https://github.com/dart-lang/sdk
synced 2024-09-06 00:59:09 +00:00
![]() 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: https://github.com/dart-lang/sdk/issues/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> |
||
---|---|---|
.. | ||
bin | ||
lib | ||
.gitignore | ||
api_readme.md | ||
BUILD.gn | ||
OWNERS |