Skip to content

Commit aaf34e4

Browse files
committed
[benchmark] StringComparison,Hashing Legacy Factor
+ NormalizedIterator
1 parent f54b402 commit aaf34e4

File tree

2 files changed

+90
-52
lines changed

2 files changed

+90
-52
lines changed

benchmark/single-source/StringComparison.swift

Lines changed: 57 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@ extension String {
2828
return self.split(separator: "\n").map { String($0) }
2929
}
3030
}
31-
32-
33-
34-
3531
public let StringComparison: [BenchmarkInfo] = [
3632
BenchmarkInfo(
3733
name: "StringComparison_ascii",
@@ -43,43 +39,50 @@ public let StringComparison: [BenchmarkInfo] = [
4339
name: "StringComparison_latin1",
4440
runFunction: run_StringComparison_latin1,
4541
tags: [.validation, .api, .String],
46-
setUpFunction: { blackHole(Workload_latin1) }
42+
setUpFunction: { blackHole(Workload_latin1) },
43+
legacyFactor: 2
4744
),
4845
BenchmarkInfo(
4946
name: "StringComparison_fastPrenormal",
5047
runFunction: run_StringComparison_fastPrenormal,
5148
tags: [.validation, .api, .String],
52-
setUpFunction: { blackHole(Workload_fastPrenormal) }
49+
setUpFunction: { blackHole(Workload_fastPrenormal) },
50+
legacyFactor: 10
5351
),
5452
BenchmarkInfo(
5553
name: "StringComparison_slowerPrenormal",
5654
runFunction: run_StringComparison_slowerPrenormal,
5755
tags: [.validation, .api, .String],
58-
setUpFunction: { blackHole(Workload_slowerPrenormal) }
56+
setUpFunction: { blackHole(Workload_slowerPrenormal) },
57+
legacyFactor: 10
5958
),
6059
BenchmarkInfo(
6160
name: "StringComparison_nonBMPSlowestPrenormal",
6261
runFunction: run_StringComparison_nonBMPSlowestPrenormal,
6362
tags: [.validation, .api, .String],
64-
setUpFunction: { blackHole(Workload_nonBMPSlowestPrenormal) }
63+
setUpFunction: { blackHole(Workload_nonBMPSlowestPrenormal) },
64+
legacyFactor: 10
6565
),
6666
BenchmarkInfo(
6767
name: "StringComparison_emoji",
6868
runFunction: run_StringComparison_emoji,
6969
tags: [.validation, .api, .String],
70-
setUpFunction: { blackHole(Workload_emoji) }
70+
setUpFunction: { blackHole(Workload_emoji) },
71+
legacyFactor: 4
7172
),
7273
BenchmarkInfo(
7374
name: "StringComparison_abnormal",
7475
runFunction: run_StringComparison_abnormal,
7576
tags: [.validation, .api, .String],
76-
setUpFunction: { blackHole(Workload_abnormal) }
77+
setUpFunction: { blackHole(Workload_abnormal) },
78+
legacyFactor: 20
7779
),
7880
BenchmarkInfo(
7981
name: "StringComparison_zalgo",
8082
runFunction: run_StringComparison_zalgo,
8183
tags: [.validation, .api, .String],
82-
setUpFunction: { blackHole(Workload_zalgo) }
84+
setUpFunction: { blackHole(Workload_zalgo) },
85+
legacyFactor: 25
8386
),
8487
BenchmarkInfo(
8588
name: "StringComparison_longSharedPrefix",
@@ -100,43 +103,50 @@ public let StringHashing: [BenchmarkInfo] = [
100103
name: "StringHashing_latin1",
101104
runFunction: run_StringHashing_latin1,
102105
tags: [.validation, .api, .String],
103-
setUpFunction: { blackHole(Workload_latin1) }
106+
setUpFunction: { blackHole(Workload_latin1) },
107+
legacyFactor: 2
104108
),
105109
BenchmarkInfo(
106110
name: "StringHashing_fastPrenormal",
107111
runFunction: run_StringHashing_fastPrenormal,
108112
tags: [.validation, .api, .String],
109-
setUpFunction: { blackHole(Workload_fastPrenormal) }
113+
setUpFunction: { blackHole(Workload_fastPrenormal) },
114+
legacyFactor: 10
110115
),
111116
BenchmarkInfo(
112117
name: "StringHashing_slowerPrenormal",
113118
runFunction: run_StringHashing_slowerPrenormal,
114119
tags: [.validation, .api, .String],
115-
setUpFunction: { blackHole(Workload_slowerPrenormal) }
120+
setUpFunction: { blackHole(Workload_slowerPrenormal) },
121+
legacyFactor: 10
116122
),
117123
BenchmarkInfo(
118124
name: "StringHashing_nonBMPSlowestPrenormal",
119125
runFunction: run_StringHashing_nonBMPSlowestPrenormal,
120126
tags: [.validation, .api, .String],
121-
setUpFunction: { blackHole(Workload_nonBMPSlowestPrenormal) }
127+
setUpFunction: { blackHole(Workload_nonBMPSlowestPrenormal) },
128+
legacyFactor: 10
122129
),
123130
BenchmarkInfo(
124131
name: "StringHashing_emoji",
125132
runFunction: run_StringHashing_emoji,
126133
tags: [.validation, .api, .String],
127-
setUpFunction: { blackHole(Workload_emoji) }
134+
setUpFunction: { blackHole(Workload_emoji) },
135+
legacyFactor: 4
128136
),
129137
BenchmarkInfo(
130138
name: "StringHashing_abnormal",
131139
runFunction: run_StringHashing_abnormal,
132140
tags: [.validation, .api, .String],
133-
setUpFunction: { blackHole(Workload_abnormal) }
141+
setUpFunction: { blackHole(Workload_abnormal) },
142+
legacyFactor: 20
134143
),
135144
BenchmarkInfo(
136145
name: "StringHashing_zalgo",
137146
runFunction: run_StringHashing_zalgo,
138147
tags: [.validation, .api, .String],
139-
setUpFunction: { blackHole(Workload_zalgo) }
148+
setUpFunction: { blackHole(Workload_zalgo) },
149+
legacyFactor: 25
140150
),
141151
]
142152

@@ -151,43 +161,50 @@ public let NormalizedIterator: [BenchmarkInfo] = [
151161
name: "NormalizedIterator_latin1",
152162
runFunction: run_NormalizedIterator_latin1,
153163
tags: [.validation, .String],
154-
setUpFunction: { blackHole(Workload_latin1) }
164+
setUpFunction: { blackHole(Workload_latin1) },
165+
legacyFactor: 2
155166
),
156167
BenchmarkInfo(
157168
name: "NormalizedIterator_fastPrenormal",
158169
runFunction: run_NormalizedIterator_fastPrenormal,
159170
tags: [.validation, .String],
160-
setUpFunction: { blackHole(Workload_fastPrenormal) }
171+
setUpFunction: { blackHole(Workload_fastPrenormal) },
172+
legacyFactor: 10
161173
),
162174
BenchmarkInfo(
163175
name: "NormalizedIterator_slowerPrenormal",
164176
runFunction: run_NormalizedIterator_slowerPrenormal,
165177
tags: [.validation, .String],
166-
setUpFunction: { blackHole(Workload_slowerPrenormal) }
178+
setUpFunction: { blackHole(Workload_slowerPrenormal) },
179+
legacyFactor: 10
167180
),
168181
BenchmarkInfo(
169182
name: "NormalizedIterator_nonBMPSlowestPrenormal",
170183
runFunction: run_NormalizedIterator_nonBMPSlowestPrenormal,
171184
tags: [.validation, .String],
172-
setUpFunction: { blackHole(Workload_nonBMPSlowestPrenormal) }
185+
setUpFunction: { blackHole(Workload_nonBMPSlowestPrenormal) },
186+
legacyFactor: 10
173187
),
174188
BenchmarkInfo(
175189
name: "NormalizedIterator_emoji",
176190
runFunction: run_NormalizedIterator_emoji,
177191
tags: [.validation, .String],
178-
setUpFunction: { blackHole(Workload_emoji) }
192+
setUpFunction: { blackHole(Workload_emoji) },
193+
legacyFactor: 4
179194
),
180195
BenchmarkInfo(
181196
name: "NormalizedIterator_abnormal",
182197
runFunction: run_NormalizedIterator_abnormal,
183198
tags: [.validation, .String],
184-
setUpFunction: { blackHole(Workload_abnormal) }
199+
setUpFunction: { blackHole(Workload_abnormal) },
200+
legacyFactor: 20
185201
),
186202
BenchmarkInfo(
187203
name: "NormalizedIterator_zalgo",
188204
runFunction: run_NormalizedIterator_zalgo,
189205
tags: [.validation, .String],
190-
setUpFunction: { blackHole(Workload_zalgo) }
206+
setUpFunction: { blackHole(Workload_zalgo) },
207+
legacyFactor: 25
191208
),
192209
]
193210

@@ -635,7 +652,8 @@ struct Workload {
635652
óôõö÷øùúûüýþÿ
636653
123.456£=>¥
637654
123.456
638-
""".lines()
655+
""".lines(),
656+
scaleMultiplier: 1/2
639657
)
640658
static let fastPrenormal = Workload(
641659
name: "FastPrenormal",
@@ -656,7 +674,8 @@ struct Workload {
656674
ʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰ
657675
ʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿˀˁ˂˃˄˅ˆˇˈˉˊˋˌˍˎˏːˑ˒˓˔˕˖˗˘˙˚˛˜˝˞˟ˠˡˢˣˤ˥˦
658676
˧˨˩˪˫ˬ˭ˮ˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾
659-
""".lines()
677+
""".lines(),
678+
scaleMultiplier: 1/10
660679
)
661680
static let slowerPrenormal = Workload(
662681
name: "SlowerPrenormal",
@@ -673,7 +692,8 @@ struct Workload {
673692
в чащах юга жил-был цитрус
674693
\u{300c}\u{300e}今日は\u{3001}世界\u{3002}\u{300f}\u{300d}
675694
но фальшивый экземпляр
676-
""".lines()
695+
""".lines(),
696+
scaleMultiplier: 1/10
677697
)
678698
// static let slowestPrenormal = """
679699
// """.lines()
@@ -691,7 +711,8 @@ struct Workload {
691711
𓃘𓃙𓃚𓃛𓃠𓃡𓃢𓃣𓃦𓃧𓃨𓃩𓃬𓃭𓃮𓃯𓃰𓃲𓃳𓃴𓃵𓃶𓃷
692712
𓀀𓀁𓀂𓀃𓀄𓆇𓆈𓆉𓆊𓆋𓆌𓆍𓆎𓆏𓆐𓆑𓆒𓆓𓆔𓆗𓆘𓆙𓆚𓆛𓆝𓆞𓆟𓆠𓆡𓆢𓆣𓆤
693713
𓆥𓆦𓆧𓆨𓆩𓆪𓆫𓆬𓆭𓆮𓆯𓆰𓆱𓆲𓆳𓆴𓆵𓆶𓆷𓆸𓆹𓆺𓆻
694-
""".lines()
714+
""".lines(),
715+
scaleMultiplier: 1/10
695716
)
696717
static let emoji = Workload(
697718
name: "Emoji",
@@ -704,7 +725,8 @@ struct Workload {
704725
😋🤑🤗🤓😎😒😏🤠🤡😞😔😟😕😖😣☹️🙁😫😩😤😠😑😐😶😡😯
705726
😦😧😮😱😳😵😲😨😰😢😥
706727
😪😓😭🤤😴🙄🤔🤥🤧🤢🤐😬😷🤒🤕😈💩👺👹👿👻💀☠️👽
707-
""".lines()
728+
""".lines(),
729+
scaleMultiplier: 1/4
708730
)
709731

710732
static let abnormal = Workload(
@@ -715,7 +737,8 @@ struct Workload {
715737
\u{f900}\u{f901}\u{f902}\u{f903}\u{f904}\u{f905}\u{f906}\u{f907}\u{f908}\u{f909}\u{f90a}
716738
\u{f90b}\u{f90c}\u{f90d}\u{f90e}\u{f90f}\u{f910}\u{f911}\u{f912}\u{f913}\u{f914}\u{f915}\u{f916}\u{f917}\u{f918}\u{f919}
717739
\u{f900}\u{f91a}\u{f91b}\u{f91c}\u{f91d}\u{f91e}\u{f91f}\u{f920}\u{f921}\u{f922}
718-
""".lines()
740+
""".lines(),
741+
scaleMultiplier: 1/20
719742
)
720743
// static let pathological = """
721744
// """.lines()
@@ -739,9 +762,9 @@ struct Workload {
739762
ơ̗̘̙̜̹̺̻̼͇͈͉͍͎̽̾̿̀́͂̓̈́͆͊͋͌̚ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͥͦͧͨͩͪͫͬͭͮ͘
740763
xͣͤͥͦͧͨͩͪͫͬͭͮ
741764
""".lines(),
742-
scaleMultiplier: 0.25
765+
scaleMultiplier: 1/100
743766
)
744-
767+
745768
static let longSharedPrefix = Workload(
746769
name: "LongSharedPrefix",
747770
payload: """
@@ -756,7 +779,7 @@ struct Workload {
756779
🤔Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.🤔
757780
""".lines()
758781
)
759-
782+
760783
}
761784

762785
// Local Variables:

0 commit comments

Comments
 (0)