Joe Shajrawi
ca6ccb4864
Benchmark categorization support
2017-09-22 17:39:04 -07:00
Andrew Trick
78b072b4da
Add a CPU microbenchmarks for isUniquelyReferenced.
2017-09-22 16:38:49 -07:00
Andrew Trick
d9af4c5f45
Introduce BenchmarkInfo and BenchmarkCategories.
2017-09-22 12:49:59 -07:00
Erik Eckstein
d6f6774214
benchmarks: add a benchmark for string enum construction from a string raw value.
2017-09-18 17:50:24 -07:00
Dave Abrahams
31341e6753
Merge pull request #10976 from d-ronnqvist/reduce-with-inout
...
[stdlib] Implement SE-0171: Reduce with inout
2017-07-23 19:57:25 -07:00
David Rönnqvist
bc235afcf8
[stdlib] Update reduce benchmark to compare the two forms
...
The ReduceInto benchmark performs three tasks using both `reduce(_:_)` and `reduce(into:_:)` so that their performance can be compared:
1. Summing an array, reducing to `Int`
2. Filtering an array, reducing to `[Int]`
3. Counting letter frequencies, reducing to `[Character: Int]`
2017-07-18 17:42:27 +02:00
Erik Eckstein
ffa38bbf84
Revert "Add benchmarks for a number of NSStringAPI functions"
...
This reverts commit cf73e560ad .
The benchmarks are causing leaks.
Reverted until this is investigated.
2017-07-17 17:38:49 -07:00
David Rönnqvist
e15ea5fcf3
[stdlib] Implement reduce with inout (SE-0171)
...
Implement and document `reduce(into:_:)`, with a few notes:
- The `initial` parameter was renamed `initialResult` to match the first parameter in `reduce(_:_:)`.
- The unnamed `combining` parameter was renamed `updateAccumulatingResult` to try and resemble the naming of the closure parameter in `reduce(_:_:)`.
- The closure throws and `reduce(into:_)` re-throws.
- This documentation mentions that `reduce(into:_)` is preferred over `reduce(_:_:)` when the result is a copy-on-write type and an example where the result is a dictionary.
Add benchmarks for reduce with accumulation into a scalar, an array, and a dictionary.
Update expected error message in closures test (since there are now two `reduce` methods, the diagnostic is different).
2017-07-14 23:24:42 +02:00
Philippe Hausler
cf73e560ad
Add benchmarks for a number of NSStringAPI functions
2017-07-13 11:33:35 -07:00
Andrew Trick
b76794ce2b
Benchmarks for memory exclusivity enforcement.
...
Three blind microbenchmarks:
- global access
- materializeForSet class property
- nested independent access
2017-06-29 14:31:46 -07:00
Michael Ilseman
bd5189c25a
[String] Grapheme fast paths for punctuation: 5-8x speedup.
...
Many strings use non-sub-300 punctuation characters (e.g. unicode
hyphen, CJK quotes, etc). This can cause switching between fast and
slow paths for grapheme breaking. Add in fast-paths for general
punctuation characters and CJK punctuation and symbol characters.
This results in about a 5-8x speedup for heavily (unicode) punctuated
Latiny and CJKy workloads.
2017-06-27 19:18:51 -07:00
Dave Abrahams
cb4c656bc2
[stdlib] Add benchmarks for Character's unicodeScalars view
...
In local testing, these benchmark results change as follows due to f212fac717 :
<details open>
<summary>Regression (20)</summary>
TEST | OLD | NEW | DELTA | SPEEDUP
--- | --- | --- | --- | ---
CharIteration_utf16_unicodeScalars | 33074 | 79510 | +140.4% | **0.42x**
CharIteration_utf16_unicodeScalars_Backwards | 73826 | 115515 | +56.5% | **0.64x**
</details>
<details open>
<summary>Improvement (43)</summary>
TEST | OLD | NEW | DELTA | SPEEDUP
--- | --- | --- | --- | ---
CharIndexing_korean_unicodeScalars | 118425 | 10360 | -91.3% | **11.43x**
CharIndexing_tweet_unicodeScalars_Backwards | 226366 | 19850 | -91.2% | **11.40x**
CharIndexing_tweet_unicodeScalars | 240596 | 21178 | -91.2% | **11.36x**
CharIndexing_japanese_unicodeScalars_Backwards | 136265 | 12032 | -91.2% | **11.33x**
CharIndexing_chinese_unicodeScalars | 92226 | 8146 | -91.2% | **11.32x**
CharIndexing_russian_unicodeScalars | 100908 | 8948 | -91.1% | **11.28x**
CharIndexing_japanese_unicodeScalars | 145414 | 12895 | -91.1% | **11.28x**
CharIndexing_ascii_unicodeScalars | 121438 | 10779 | -91.1% | **11.27x**
CharIndexing_russian_unicodeScalars_Backwards | 94190 | 8367 | -91.1% | **11.26x**
CharIndexing_korean_unicodeScalars_Backwards | 110175 | 9803 | -91.1% | **11.24x**
CharIndexing_chinese_unicodeScalars_Backwards | 86479 | 7715 | -91.1% | **11.21x**
CharIndexing_ascii_unicodeScalars_Backwards | 113255 | 10132 | -91.1% | **11.18x**
CharIteration_ascii_unicodeScalars_Backwards | 114873 | 13701 | -88.1% | **8.38x**
CharIteration_chinese_unicodeScalars_Backwards | 85778 | 10411 | -87.9% | **8.24x**
CharIteration_russian_unicodeScalars_Backwards | 94504 | 11471 | -87.9% | **8.24x**
CharIteration_japanese_unicodeScalars_Backwards | 136231 | 16569 | -87.8% | **8.22x**
CharIteration_tweet_unicodeScalars_Backwards | 222907 | 27165 | -87.8% | **8.21x**
CharIteration_korean_unicodeScalars_Backwards | 110132 | 13443 | -87.8% | **8.19x**
CharIteration_korean_unicodeScalars | 79540 | 11859 | -85.1% | **6.71x**
CharIteration_russian_unicodeScalars | 68209 | 10211 | -85.0% | **6.68x**
CharIteration_japanese_unicodeScalars | 98016 | 14690 | -85.0% | **6.67x**
CharIteration_tweet_unicodeScalars | 161177 | 24227 | -85.0% | **6.65x**
CharIteration_chinese_unicodeScalars | 61702 | 9278 | -85.0% | **6.65x**
CharIteration_ascii_unicodeScalars | 81049 | 12218 | -84.9% | **6.63x**
</details>
2017-06-27 17:25:41 -07:00
Erik Eckstein
f45bddcaa6
benchmarks: Convert the GlobalClass benchmark to a SILOptimizer test
...
The purpose of the benchmark was to check a very specific ARC optimization, which is better tested with a lit test.
Beside that, the benchmark was broken anyway.
2017-06-21 14:32:29 -07:00
Nate Cook
220614c016
[benchmark] Add benchmark for Dictionary(group:by:)
2017-06-15 11:45:33 -05:00
Ben Cohen
ac18e4297a
Benchmarks for equating/comparing substrings ( #10030 )
...
* Benchmarks for equating/comparing substrings
* Update main.swift
* Regnerate benchmarks harness file
2017-06-01 14:52:58 -07:00
Michael Ilseman
6ee5745a3a
[benchmark] Add Russian StringWalk variant (off by default)
2017-05-31 11:34:42 -07:00
Dave Abrahams
010412ced2
[stdlib] Add Substring comparison benchmarks
...
This exercise reveals lots of unimplemented cases, which, when implemented, will
cause us to uncomment the disabled code.
2017-05-24 20:56:26 -07:00
Joe Shajrawi
a408803345
Revert "[stdlib] Add Substring comparison benchmarks"
2017-05-24 20:20:55 -07:00
Dave Abrahams
dc184b5e96
[stdlib] Update main.swift for added benchmarks
2017-05-24 19:01:32 -07:00
Pavol Vaskovic
05b977d54b
Disable HashQuadratic benchmark
...
Moving HashQuadratic performance test from “precommit” suite to “other”, so that it does not slow down the testing until we have a fix for SR-3268.
2017-05-18 07:29:37 +02:00
Michael Ilseman
fb5734c24f
Merge pull request #9575 from milseman/unihan_fasterhan
...
[stdlib] String: Walk Chinese/Japanese faster: 2x/4x forwards/backwards
2017-05-14 13:50:15 -07:00
Dave Abrahams
5a0db2f389
[stdlib] Add initial Substring benchmarks
2017-05-12 19:59:41 -07:00
Michael Ilseman
075c6e6a04
[benchmark] Add more (off-by-default) StringWalk benchmarks.
...
Gyb up StringWalk, to avoid the code explosion. Add in benchmarks for
walking Chinese, Japanese, and Korean text.
2017-05-12 17:34:09 -07:00
Pavol Vaskovic
68fde69535
Applied DRYer. Made python lint happy.
2017-05-02 21:49:59 +02:00
Pavol Vaskovic
bdffb35d17
SR-4572 Remove jinja2 dependency from benchmark test harness generation
2017-05-02 16:20:30 +02:00
Erik Eckstein
994c04f943
benchmarks: add another benchmark for appending multiple array elements.
...
In contrast to the other similar benchmarks, this benchmark starts with a new array each iteration.
2017-04-26 15:06:05 -07:00
Erik Eckstein
7914e09aa8
benchmarks: Add a benchmark for COW existentials
2017-04-26 14:54:16 -07:00
Michael Ilseman
517ac2a66f
[benchmark] Add in some (default off) mixed-string micro benchmarks
...
Adds in a benchmark to see how quickly we can traverse mixed latin and
emoji strings. Default disabled and part of the stringTests suite.
2017-04-24 14:57:42 -07:00
Arnold Schwaighofer
c9aa05c3c6
[benchmark] Move existential tests out of precommit. They are not very stable.
2017-04-20 13:11:20 -07:00
Michael Ilseman
edf8e6e5e6
[benchmark] Move work into the harness generator
...
Move the improvements to main.swift into the harness generator and
template itself. Run the generator.
2017-04-19 14:59:35 -07:00
Michael Ilseman
9ffc2f073a
[benchmark] Add String test suite (off by default)
...
Starts a String perf test suite called stringTests which is
off-by-default, but allows us to place some lower-level targeted
benchmarking.
2017-04-19 13:31:34 -07:00
Michael Ilseman
c1ba0bcd6a
[benchmark] Speed up compilation time of suite
...
This speeds up the compilation time of main.swift in the benchmark
suite from taking a minute or two to about a second. NFC.
2017-04-19 13:30:35 -07:00
Pavol Vaskovic
1c9cc3815a
Performance tests for Sequence methods: DropFirst, DropWhile, PrefixWhile
2017-04-12 01:15:02 +02:00
Pavol Vaskovic
739c3b70a8
Add same test variants for DropLast and Prefix as exist on Suffix
2017-04-11 01:22:43 +02:00
Pavol Vaskovic
4f3753a749
Add support for GYB in benchmarks
2017-04-08 09:13:18 +02:00
Arnold Schwaighofer
3c83ea6761
Fix benchmark for generate script
2017-03-29 05:35:48 -07:00
Arnold Schwaighofer
f5cf0aa5d6
Add existential performance benchmarks
2017-03-27 11:32:47 -07:00
swift-ci
b156cbb0f7
Merge pull request #7420 from therealbnut/therealbnut-droplast-suffix-benchmarks
2017-03-14 14:34:53 -07:00
Nate Cook
27b3de06f8
[benchmark] Add test for lazy filter -> array
2017-03-14 11:08:25 -05:00
Ben Cohen
f02f31c2df
Add more string benchmarks
2017-03-10 17:20:04 -08:00
Andrew Bennett
34d7a4b5bc
Merge branch 'master' into therealbnut-droplast-suffix-benchmarks
2017-03-05 11:57:44 +11:00
therealbnut
c6dc0b0625
Add Array benchmarks
2017-02-25 13:08:39 +11:00
Nate Cook
c53e8d6750
Add quadratic hash performance benchmark
2017-02-19 12:32:33 -06:00
therealbnut
4a55f70832
Benchmarks for dropLast and suffix
2017-02-13 21:50:09 +11:00
Ben Cohen
95988dd29d
Add benchmarks for appending UTF8 String views to an array
2017-02-06 14:14:49 -08:00
Ben Cohen
0d39d07efe
add more benchmarks of map/reduce
2017-01-27 17:58:55 -08:00
Tony Allevato
9c07eb6534
Add benchmarks for initializing Characters from literals.
2017-01-17 21:35:37 -08:00
Ben Ng
3e718d3a26
Add benchmarks for += in ArrayAppend
2017-01-11 22:11:31 -05:00
practicalswift
30a88d38e6
[gardening] Fix recently introduced typos
2017-01-06 21:16:02 +01:00
practicalswift
6d1ae2a39c
[gardening] 2016 → 2017
2017-01-06 16:41:22 +01:00