dart-sdk/benchmarks
Martin Kustermann af1b5b8044 [dart2wasm] Switch binaryen optimization levels from -O3 to -Os
We want dart2wasm be comparable to dart2js / dart2aot, the ladder two
are much more conservative with inlining compared to current dart2wasm.

The -O3 is described in the binaryen sources as agressive for
performance and therefore willing to compromise code size.

The -Os is more nuanced: It will perform many optimizations that are
done in -O3 (and e.g. not in -O2) but it will make inlining less
agressive.

This reduces flute compile-time by 10% and code size by 10%
This benchmark results are mixed (some things get faster, some things
slower). Naturally there'll be specialized micro benchmarks that
get hit hard by this.

Where performance matters we should rather make dart2wasm use better
inlining heuristics and annotate code with
`@pragma('wasm:prefer-inline')`

Change-Id: Idf7e75e4e385629c9cec66359efe0afe50db3e72
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352523
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-02-14 13:45:13 +00:00
..
AsyncLiveVars [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
BigIntParsePrint Spelling sdk 2023-01-20 12:37:49 +00:00
Calls [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
DartCLIStartup [ Benchmarks ] Add benchmarks for SDK snapshot sizes and Dart CLI 2021-05-25 17:52:41 +00:00
Dynamic [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
EventLoopLatencyJson Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
EventLoopLatencyJson350KB Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
EventLoopLatencyRegexp Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
Example Spelling benchmarks 2022-12-20 12:36:37 +00:00
FfiAsTypedList/dart [benchmarks/ffi] Cleanup benchmarks 2023-05-09 09:50:24 +00:00
FfiBoringssl [benchmarks/ffi] Cleanup benchmarks 2023-05-09 09:50:24 +00:00
FfiCall Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
FfiMemory/dart [benchmarks/ffi] Cleanup benchmarks 2023-05-09 09:50:24 +00:00
FfiStruct [benchmarks/ffi] Cleanup benchmarks 2023-05-09 09:50:24 +00:00
FfiStructCopy [benchmarks] Add verbose flag to FfiStructCopy benchmark suite. 2023-08-08 11:59:29 +00:00
FileIOSink/dart Await the benchmark reports 2023-03-08 22:38:21 +00:00
ForEachLoop [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
ForInGeneratedLoop [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
ForInLoop [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
ForLoop [benchmarks] Publish some more Dart benchmarks 2023-09-04 15:57:53 +00:00
InstantiateTypeArgs [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
IntegerSetLookup Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
Isolate [benchmarks] Follow-up to "Roll benchmark_harness" 2022-05-02 12:26:41 +00:00
IsolateBaseOverhead [vm/concurrency] Add IsolateBaseOverhead benchmark 2022-05-30 08:14:52 +00:00
IsolateFibonacci [vm/concurrency] Remove --(no-)enable-isolate-groups flag usage in tests 2021-11-04 18:57:21 +00:00
IsolateJson [benchmarks] Remove unnecessary utf8.encode() as Uint8List downcast 2023-08-21 08:21:37 +00:00
IsolateRegExp/dart Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
IsolateSendExitLatency Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
IsolateSpawn [benchmarks] Use gen_kernel instead of dart2js for isolate group benchmarks. 2022-11-21 22:25:59 +00:00
IsolateSpawnMemory Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
Iterators [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
ListCopy [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
LongStringCompare/dart Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
MapCopy [benchmark] Add MapCopy benchmark 2022-01-06 03:32:34 +00:00
MapLookup [benchmarks/vm] Add benchmarks for #45908 2021-05-27 07:54:14 +00:00
MD5 [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
MemoryCopy/dart [benchmarks] Change the MemoryCopy memcpy benchmarks to use memmove. 2023-08-11 13:17:17 +00:00
MultipleReturns/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
NativeCall Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
ObjectHash Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
Omnibus Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
OmnibusDeferred Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
RecordCollections/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
Richards [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
RuntimeType [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
SDKArtifactSizes [benchmark] Rename dds to dds_aot in SDKArtifactSizes. 2023-10-27 12:23:23 +00:00
SendPort [vm] Prevent tree shaking of fields in SendPort benchmark 2021-07-16 04:39:37 +00:00
SHA1 [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
SHA256 [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
SkeletalAnimation [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
SkeletalAnimationSIMD [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
SoundSplayTreeSieve Fix analysis issues in benchmarks/ directory 2023-05-17 09:14:50 +00:00
Startup [benchmarks] Use gen_kernel instead of dart2js for isolate group benchmarks. 2022-11-21 22:25:59 +00:00
StringPool [benchmarks] Add benchmark to measure dart2js string pool cost 2021-06-03 03:11:44 +00:00
SubtypeTestCache [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
SwitchFSM/dart Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
TearOff/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
TypedData Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
TypedDataCopy Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
TypedDataDuplicate [benchmark] Add language version comments to benchmarks. 2020-10-13 01:43:22 +00:00
TypedDataPoly/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
TypeLiteral/dart [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
UiMatrix/dart Trivial cleanup to make VSCode workspace for the SDK 2023-11-07 17:49:53 +00:00
Utf8Decode [benchmarks] Remove unnecessary utf8.encode() as Uint8List downcast 2023-08-21 08:21:37 +00:00
Utf8DecodeComplex/dart [benchmark] Utf8Decode chunked and polymorphic benchmark 2023-11-15 18:21:23 +00:00
Utf8Encode [benchmarks] Update legacy benchmarks to use the List.filled constructor 2023-05-22 14:14:42 +00:00
analysis_options.yaml linter: Remove two deprecated linter rules 2023-11-09 17:03:15 +00:00
OWNERS [infra] Add OWNERS to the Dart SDK 2022-02-14 14:06:34 +00:00