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.
* Fixing some fixmes on stdlib Set
* Adding @inline attr
* Fixing spaces
* Adding isEmpty as fast path in other places where is possible.
* Quotes on variable name on comment.
* Update stdlib/public/core/Set.swift
Co-Authored-By: LucianoPAlmeida <passos.luciano@outlook.com>
* Adding benchmark for isDisjoint Set method
* Adding empty sets to benchmark
* Fixing the factor on benchmarks and naming warnings for empty 5 words
…plus an attempt at reducing wide range of memory used between independent, repeated measurements in the `CharacterPropertiesPrecomputed` benchmark by reserving the appropriate set capacity in advance.
The `legacyFactor` is 11 instead of 10, because of the wierd way the `repeatCount` translates to the workload size based on the number of lines in the `workloadBase`… it’s just so.
Lowered the workload of string appending bechmarks a bit further, to get them under 1ms in `O` and 10ms in `Onone` builds.
Fine tuned the legacy factor to match original `O` runtimes — the changes are non-linear because of complications from double loop and amortized array growth costs.
These string appending benchmarks along with
* ArrayPlusEqualFiveElementCollection and
* ArrayPlusEqualSingleElementCollection
are likely to show different performance in `Osize` and `Onone` builds because of the non-linearity of their original implementation.
Cleaned up doubled inner loops and applied legacyFactor to the resulting, more rational, workload sizes.
Factors for string appending benchmarks are not 10, but 11 to compensate for smaller amortized Array resizes. Similarily ArrayPlusEqualFiveElementCollection’s factor is 49.
Reintroduce Ackermann benchmark with reasonably sized workload. Since this one was tagged `.unstable`, there’s no need to go through `legacyFactor`.
Adjusted `lit` test for Benchmark_O now that Ackermann isn’t marked `.unstable` anymore.
Removed incorrect `asserts` requirement from the benchmark lit tests.