@@ -154,16 +154,24 @@ extension BenchmarkResult {
154
154
var name : String
155
155
var baseline : BenchmarkResult
156
156
var latest : BenchmarkResult
157
- var diffCompileTimes : Bool = false
157
+ var type : ComparisonType = . runtime
158
158
159
+ enum ComparisonType {
160
+ case runtime
161
+ case compileTime
162
+ }
163
+
159
164
var diff : Time ? {
160
- if diffCompileTimes {
165
+ switch type {
166
+ case . compileTime:
161
167
return latest. compileTime - baseline. compileTime
168
+ case . runtime:
169
+ if Stats . tTest ( baseline, latest) {
170
+ return latest. median - baseline. median
171
+ }
172
+ return nil
162
173
}
163
- if Stats . tTest ( baseline, latest) {
164
- return latest. median - baseline. median
165
- }
166
- return nil
174
+
167
175
}
168
176
169
177
var description : String {
@@ -172,10 +180,11 @@ extension BenchmarkResult {
172
180
}
173
181
let oldVal : Time
174
182
let newVal : Time
175
- if diffCompileTimes {
183
+ switch type {
184
+ case . compileTime:
176
185
oldVal = baseline. compileTime
177
186
newVal = latest. compileTime
178
- } else {
187
+ case . runtime :
179
188
oldVal = baseline. median
180
189
newVal = latest. median
181
190
}
@@ -191,10 +200,11 @@ extension BenchmarkResult {
191
200
}
192
201
let oldVal : Time
193
202
let newVal : Time
194
- if diffCompileTimes {
203
+ switch type {
204
+ case . compileTime:
195
205
oldVal = baseline. compileTime
196
206
newVal = latest. compileTime
197
- } else {
207
+ case . runtime :
198
208
oldVal = baseline. median
199
209
newVal = latest. median
200
210
}
@@ -211,7 +221,6 @@ struct SuiteResult {
211
221
results. updateValue ( result, forKey: name)
212
222
}
213
223
214
- /// Compares with the given SuiteResult
215
224
func compare( with other: SuiteResult ) -> [ BenchmarkResult . Comparison ] {
216
225
var comparisons : [ BenchmarkResult . Comparison ] = [ ]
217
226
for item in results {
@@ -236,7 +245,6 @@ struct SuiteResult {
236
245
return comparisons
237
246
}
238
247
239
- /// Compares the compile times
240
248
func compareCompileTimes(
241
249
with other: SuiteResult
242
250
) -> [ BenchmarkResult . Comparison ] {
@@ -247,7 +255,7 @@ struct SuiteResult {
247
255
. init( name: item. key,
248
256
baseline: otherVal,
249
257
latest: item. value,
250
- diffCompileTimes : true ) )
258
+ type : . compileTime ) )
251
259
}
252
260
}
253
261
return comparisons
0 commit comments