@@ -161,12 +161,12 @@ struct BenchmarkResult: Codable, CustomStringConvertible {
161
161
let parseTime : Measurement ?
162
162
163
163
var description : String {
164
- var base = " > run time: \( runtime. description) "
164
+ var base = " > run time: \( runtime. description) "
165
165
if let compileTime = compileTime {
166
- base += " \n > compile time: \( compileTime) "
166
+ base += " \n > compile time: \( compileTime) "
167
167
}
168
168
if let parseTime = parseTime {
169
- base += " \n > parse time: \( parseTime) "
169
+ base += " \n > parse time: \( parseTime) "
170
170
}
171
171
return base
172
172
}
@@ -176,45 +176,17 @@ extension BenchmarkResult {
176
176
struct Comparison : Identifiable , CustomStringConvertible {
177
177
var id = UUID ( )
178
178
var name : String
179
- var baseline : BenchmarkResult
180
- var latest : BenchmarkResult
181
- var type : ComparisonType = . runtime
179
+ var baseline : Measurement
180
+ var latest : Measurement
182
181
183
- enum ComparisonType {
184
- case runtime
185
- case compileTime
186
- }
187
-
188
- var latestTime : Time {
189
- switch type {
190
- case . compileTime:
191
- return latest. compileTime? . median ?? . zero
192
- case . runtime:
193
- return latest. runtime. median
194
- }
195
- }
196
-
197
- var baselineTime : Time {
198
- switch type {
199
- case . compileTime:
200
- return baseline. compileTime? . median ?? . zero
201
- case . runtime:
202
- return baseline. runtime. median
203
- }
204
- }
205
-
182
+ var latestTime : Time { latest. median }
183
+ var baselineTime : Time { baseline. median }
206
184
var diff : Time ? {
207
- switch type {
208
- case . compileTime:
185
+ if Stats . tTest ( baseline, latest) {
209
186
return latestTime - baselineTime
210
- case . runtime:
211
- if Stats . tTest ( baseline. runtime, latest. runtime) {
212
- return latestTime - baselineTime
213
- }
214
- return nil
215
187
}
188
+ return nil
216
189
}
217
-
218
190
var normalizedDiff : Double {
219
191
latestTime. seconds/ baselineTime. seconds
220
192
}
@@ -248,10 +220,11 @@ struct SuiteResult {
248
220
249
221
func compare( with other: SuiteResult ) -> [ BenchmarkResult . Comparison ] {
250
222
var comparisons : [ BenchmarkResult . Comparison ] = [ ]
251
- for item in results {
252
- if let otherVal = other. results [ item . key] {
223
+ for latest in results {
224
+ if let otherVal = other. results [ latest . key] {
253
225
comparisons. append (
254
- . init( name: item. key, baseline: otherVal, latest: item. value) )
226
+ . init( name: latest. key,
227
+ baseline: otherVal. runtime, latest: latest. value. runtime) )
255
228
}
256
229
}
257
230
return comparisons
@@ -260,11 +233,12 @@ struct SuiteResult {
260
233
/// Compares with the NSRegularExpression benchmarks generated by CrossBenchmark
261
234
func compareWithNS( ) -> [ BenchmarkResult . Comparison ] {
262
235
var comparisons : [ BenchmarkResult . Comparison ] = [ ]
263
- for item in results {
264
- let key = item . key + CrossBenchmark. nsSuffix
236
+ for latest in results {
237
+ let key = latest . key + CrossBenchmark. nsSuffix
265
238
if let nsResult = results [ key] {
266
239
comparisons. append (
267
- . init( name: item. key, baseline: nsResult, latest: item. value) )
240
+ . init( name: latest. key,
241
+ baseline: nsResult. runtime, latest: latest. value. runtime) )
268
242
}
269
243
}
270
244
return comparisons
@@ -274,13 +248,14 @@ struct SuiteResult {
274
248
with other: SuiteResult
275
249
) -> [ BenchmarkResult . Comparison ] {
276
250
var comparisons : [ BenchmarkResult . Comparison ] = [ ]
277
- for item in results {
278
- if let otherVal = other. results [ item. key] {
251
+ for latest in results {
252
+ if let baseline = other. results [ latest. key] ,
253
+ let baselineTime = baseline. compileTime,
254
+ let latestTime = latest. value. compileTime {
279
255
comparisons. append (
280
- . init( name: item. key,
281
- baseline: otherVal,
282
- latest: item. value,
283
- type: . compileTime) )
256
+ . init( name: latest. key,
257
+ baseline: baselineTime,
258
+ latest: latestTime) )
284
259
}
285
260
}
286
261
return comparisons
0 commit comments