Adjusted the multipliers to run in under 1000 μs.
The inner loop multipliers are divided by the `legacyFactor` to achieve the same reported runtime, but in a shorter time and with better precision (less accumulated error).
Refactored to use shared test method and inlined runFunctions.
Re-enabled `Large` test errorneously disabled in #20411. Removed `skip` tags, as this was the last use.
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.
Removed `Large` variant, as it was testing the same underlying implementation as `Medium`.
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.
`blackHole` is ubiquitous in SBS, no need to state the obvious.
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.
Removed `Large` variant, as it was testing the same underlying implementation as `Medium`.
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.
`blackHole` is ubiquitous in SBS, no need to state the obvious.
Removed the disabled Large variants (tagged `.skip`).
We might re-introduce proper benchmarks for the `LargeSlice` implementation later, but for **that** the capacity has to be at least Int32.max (i.e. over 2GB). The `sampleData(.veryLarge)` was only 1GB.
DataCount had setup overhead of 18 μs (20%).
DataSubscript had setup overhead of 18 μs (2%).
SetUpFunction wasn’t necessary, because of short initialization (18 μs for `sampleData(.medium)`), which will inflate only the initial measurement.
Runtimes of other benchmarks hide the sampleData initialization in their artificially high runtimes — most use internal multiplier of 10 000 iterations — but were changed to use the same constant data, since it was already available. The overhead will already be extracted if we go for more precise measurement with lower multipliers in the future.
To use this, one needs to first build an installable root for swift (i.e. like
the smoke testbot does). Then use the tool ./benchmark/scripts/build_linux.py
with the appropriate locations of the build-directory, installable snapshot,
and it will build the benchmarks. (There are more arguments, just use --help).
rdar://40541972