commit | c7422d5277fcc58ddc41dc8598fcbaf4571322da | [log] [tgz] |
---|---|---|
author | Daco Harkes <dacoharkes@google.com> | Tue Feb 23 12:41:49 2021 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Tue Feb 23 12:41:49 2021 +0000 |
tree | 6e3d9072bb1b1cbcfa39bb979cdf0559302fe198 | |
parent | a8b42efa1a20b3b83d8e40cc885eac2e5a78a1f6 [diff] |
[benchmarks/ffi] Memory access with `asTypedList` Adds benchmarks using `asTypedList` on Pointers to investigate from where it pays of to do construct a TypedData to do memory access instead of on the Pointer directly. x64 JIT results: - Memory access on TypedData (int8) is ~2,5 faster than on Pointer. FfiMemory.PointerInt8(RunTime): 72.23885718413639 us. FfiMemory.PointerInt8TypedDataReuse(RunTime): 28.239710263614928 us. - Constructing the TypedData for 1000 reads + 1000 writes takes ~20% of the total runtime, 400 reads or writes on TypedData, 160 reads or writes on Pointer. FfiMemory.PointerInt8TypedDataNew(RunTime): 34.345480148372026 us. FfiMemory.PointerInt8TypedDataReuse(RunTime): 28.239710263614928 us. x64 AOT results: FfiMemory.PointerInt8(RunTime): 13.862134213116345 us. FfiMemory.PointerInt8TypedDataNew(RunTime): 26.149628021913365 us. FfiMemory.PointerInt8TypedDataReuse(RunTime): 24.73322780505299 us. - Using asTypedList is slower. (Some optimizations fail to kick in.) Change-Id: I401edb88baf3a3c5094ecae808f122adf258da28 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186289 Reviewed-by: Clement Skau <cskau@google.com> Commit-Queue: Daco Harkes <dacoharkes@google.com>
Dart is:
Optimized for UI: Develop with a programming language specialized around the needs of user interface creation.
Productive: Make changes iteratively: use hot reload to see the result instantly in your running app.
Fast on all platforms: Compile to ARM & x64 machine code for mobile, desktop, and backend. Or compile to JavaScript for the web.
Dart's flexible compiler technology lets you run Dart code in different ways, depending on your target platform and goals:
Dart Native: For programs targeting devices (mobile, desktop, server, and more), Dart Native includes both a Dart VM with JIT (just-in-time) compilation and an AOT (ahead-of-time) compiler for producing machine code.
Dart Web: For programs targeting the web, Dart Web includes both a development time compiler (dartdevc) and a production time compiler (dart2js).
Dart is free and open source.
See LICENSE and PATENT_GRANT.
Visit dart.dev to learn more about the language, tools, and to find codelabs.
Browse pub.dev for more packages and libraries contributed by the community and the Dart team.
Our API reference documentation is published at api.dart.dev, based on the stable release. (We also publish docs from our beta and dev channels, as well as from the primary development branch).
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.