Commit Graph

674 Commits

Author SHA1 Message Date
Itai Ferber
e57ba83f48 Reduce multipliers on Data.init.Sequence 2019-01-10 12:17:15 -08:00
Itai Ferber
3952b7359c Update benchmark names 2019-01-10 12:13:21 -08:00
Pavol Vaskovic
5cc751cad0 Merge pull request #21717 from palimondo/cells-interlinked
[benchmark] BenchmarkDoctor: Lower runtime bound + Set.Empty fixes
2019-01-10 21:11:26 +01:00
Itai Ferber
beb326e808 Data hashing benchmarks 2019-01-10 10:23:33 -08:00
Itai Ferber
a457b0d223 Data.init<S>/append<S> worst-case benchmarks 2019-01-10 10:23:11 -08:00
Pavol Vaskovic
b4f1f4747d [benchmark] Remove 0s from Empty names. 2019-01-10 18:04:10 +01:00
Pavol Vaskovic
a30b7749dd [benchmark] SuperChars: Further lower the workload 2019-01-10 12:34:46 +01:00
Michael Ilseman
779252ae13 [benchmark] Rework SuperChars
Rework SuperChars into something that:

* Doesn't crash in asserts configurations (i.e. has valid Characters)
* Actually runs (i.e. use blackHole on comparison result)
* Runs in around 1ms (it's cubic complexity in payload size)
2019-01-09 16:58:57 -08:00
Pavol Vaskovic
b4d8172228 [benchmark] Adjust loop multipliers Set.*
Increase the multipliers to get reliably measurable runtimes.
2019-01-09 12:22:48 +01:00
Lance Parker
15aaa1e777 [stdlib]String normalization functions (#21026)
* fast/foreignNormalize functions
2019-01-08 13:55:29 -08:00
Pavol Vaskovic
c011bd70c3 [benchmark] Add swapped Set.*.Empty variants
Let’s also test Empty sets as the right-hand side parameter.
2019-01-08 21:54:59 +01:00
Pavol Vaskovic
84580f88fe [benchmark] Adjust new tests to Naming Convention
Most of these recently added benchmarks have too low loop multiplier that results in near zero or zero measured runtime.

Since fixing this will change the runtimes, it is also an opportunity to properly apply the new naming convention.
2019-01-08 21:53:18 +01:00
Pavol Vaskovic
7db46b3b14 [benchmark] Inlined loop miltipliers
Also added 2 forgotten legacy factors.
2019-01-08 02:06:10 +01:00
Pavol Vaskovic
1df944c300 [benchmark] Fix DataSubscript fragile inlining? 2019-01-04 23:50:18 +01:00
Pavol Vaskovic
928d015037 [benchmark] DataBenchmarks Legacy Factor
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).
2019-01-04 22:31:30 +01:00
Pavol Vaskovic
6af0eab31a [benchmark] Move loop multipliers to BenchmarkInfo 2019-01-04 22:30:29 +01:00
Pavol Vaskovic
e4cdc48da5 [benchmark] DataToString, StringToData refactored
Refactored to use shared test method and inlined runFunctions.
2019-01-04 22:29:50 +01:00
Pavol Vaskovic
0fa784fa76 [benchmark] DataReplaceBuffer refactored
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.
2019-01-04 22:29:41 +01:00
Pavol Vaskovic
5c503c8b5d [benchmark] DataReplace refactored
Refactored to use shared test method and inlined runFunctions.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
a9d9fefdfe [benchmark] DataReset refactored
Refactored to use shareable test method and inlined runFunction.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
661a4c64be [benchmark] DataAppendSequence refactored
Refactored to use shareable test method and inlined runFunction.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
f239f1940b [benchmark] DataAppendArray refactored
Refactored to use shareable test method and inlined runFunction.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
e127acd2cb [benchmark] DataAppendData refactored
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.

Re-enabled `Large` tests errorneously disabled in #20411.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
21baf467bb [benchmark] DataCreate refactored
Refactored to use inlined runFunctions.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
c8da0a9f85 [benchmark] DataCreateArray refactored
Refactored to use inlined runFunctions.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
b55997a45b [benchmark] DataAppendBytes refactored
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
8e2f000a58 [benchmark] DataCopyBytes refactored
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`.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
d60dbe58e6 [benchmark] DataMutateBytes refactored
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
c272e921f6 [benchmark] DataAccessBytes refactored
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.

`blackHole` is ubiquitous in SBS, no need to state the obvious.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
11b84e56b1 [benchmark] DataSetCount refactored
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`.
2019-01-04 21:33:12 +01:00
Pavol Vaskovic
6146fd0f6d [benchmark] DataSubscript refactored
Refactored to use inlined runFunctions.
Extracted setup overhead.
2019-01-04 21:33:07 +01:00
Pavol Vaskovic
1d626fa107 [benchmark] DataCount refactored
Refactored to use shared test method and inlined runFunctions.
Extracted setup overhead.

`blackHole` is ubiquitous in SBS, no need to state the obvious.
2019-01-04 20:15:26 +01:00
Pavol Vaskovic
34121a9ed3 [benchmark] Remove incorrect Large variants
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.
2019-01-04 20:10:00 +01:00
Pavol Vaskovic
752310c498 [benchmark] Data workload variables
For extracting setup overhead.
Even the `large` sample Data is only 40KB, we can afford this to be static constant.
2019-01-04 10:47:15 +01:00
Pavol Vaskovic
1ad6a9a875 [benchmark] Fix: Don’t benchmark arc4random_buf
arc4random_buf was dominating the creation time. We don’t need trully random data. Anything that quickly fills the buffer will do.
2018-12-21 12:12:30 +01:00
Pavol Vaskovic
1648dcde8c [Gardening] DataBenchmarks remove unused string 2018-12-21 12:12:30 +01:00
Pavol Vaskovic
c007844bbd [Gardening] DataBenchmarks: format BenchmarkInfo 2018-12-21 12:12:30 +01:00
Pavol Vaskovic
3387328421 [Gardening] DataBenchmarks: quad to double space 2018-12-20 21:30:20 +01:00
Pavol Vaskovic
f0cdadf478 Merge pull request #21413 from palimondo/a-tall-white-fountain-played
[benchmark] Janitor Duty, Legacy Factor: Return of the String
2018-12-19 03:45:18 +01:00
Pavol Vaskovic
381dbda3bf [benchmark] StringToData, DataToString LF 2018-12-18 21:19:14 +01:00
Pavol Vaskovic
ed4b9161fb [benchmark] StrComplexWalk Legacy Factor 2018-12-18 21:17:57 +01:00
Pavol Vaskovic
aaf34e41f8 [benchmark] StringComparison,Hashing Legacy Factor
+ NormalizedIterator
2018-12-18 21:17:34 +01:00
Pavol Vaskovic
f54b40232e [benchmark] StringEdits Legacy Factor 2018-12-18 20:49:33 +01:00
Pavol Vaskovic
7ed9ddb4a3 [benchmark] StringEnum Legacy Factor 2018-12-18 20:49:09 +01:00
Pavol Vaskovic
c3efe99ccb [benchmark] StringInterpolation Legacy Factor 2018-12-18 20:48:42 +01:00
Pavol Vaskovic
f4de0d6e89 [benchmark] StringMatch Legacy Factor 2018-12-18 20:47:55 +01:00
Pavol Vaskovic
256f60920b [benchmark] StringHas[Prefix,Suffix] Legacy Factor 2018-12-18 20:47:23 +01:00
Pavol Vaskovic
9063c1ef6a [benchmark] StrToInt Legacy Factor 2018-12-18 20:45:40 +01:00
Pavol Vaskovic
7c8beb7b70 [benchmark] StringBuilder Legacy Factor 2018-12-18 20:43:07 +01:00
Luciano Almeida
2bc5623bdf [stdlib] Resolving some FIXME comments on Set type. (#20631)
* 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
2018-12-14 22:11:12 -06:00