@@ -154,16 +154,24 @@ extension BenchmarkResult {
154154 var name : String
155155 var baseline : BenchmarkResult
156156 var latest : BenchmarkResult
157- var diffCompileTimes : Bool = false
157+ var type : ComparisonType = . runtime
158158
159+ enum ComparisonType {
160+ case runtime
161+ case compileTime
162+ }
163+
159164 var diff : Time ? {
160- if diffCompileTimes {
165+ switch type {
166+ case . compileTime:
161167 return latest. compileTime - baseline. compileTime
168+ case . runtime:
169+ if Stats . tTest ( baseline, latest) {
170+ return latest. median - baseline. median
171+ }
172+ return nil
162173 }
163- if Stats . tTest ( baseline, latest) {
164- return latest. median - baseline. median
165- }
166- return nil
174+
167175 }
168176
169177 var description : String {
@@ -172,10 +180,11 @@ extension BenchmarkResult {
172180 }
173181 let oldVal : Time
174182 let newVal : Time
175- if diffCompileTimes {
183+ switch type {
184+ case . compileTime:
176185 oldVal = baseline. compileTime
177186 newVal = latest. compileTime
178- } else {
187+ case . runtime :
179188 oldVal = baseline. median
180189 newVal = latest. median
181190 }
@@ -191,10 +200,11 @@ extension BenchmarkResult {
191200 }
192201 let oldVal : Time
193202 let newVal : Time
194- if diffCompileTimes {
203+ switch type {
204+ case . compileTime:
195205 oldVal = baseline. compileTime
196206 newVal = latest. compileTime
197- } else {
207+ case . runtime :
198208 oldVal = baseline. median
199209 newVal = latest. median
200210 }
@@ -211,7 +221,6 @@ struct SuiteResult {
211221 results. updateValue ( result, forKey: name)
212222 }
213223
214- /// Compares with the given SuiteResult
215224 func compare( with other: SuiteResult ) -> [ BenchmarkResult . Comparison ] {
216225 var comparisons : [ BenchmarkResult . Comparison ] = [ ]
217226 for item in results {
@@ -236,7 +245,6 @@ struct SuiteResult {
236245 return comparisons
237246 }
238247
239- /// Compares the compile times
240248 func compareCompileTimes(
241249 with other: SuiteResult
242250 ) -> [ BenchmarkResult . Comparison ] {
@@ -247,7 +255,7 @@ struct SuiteResult {
247255 . init( name: item. key,
248256 baseline: otherVal,
249257 latest: item. value,
250- diffCompileTimes : true ) )
258+ type : . compileTime ) )
251259 }
252260 }
253261 return comparisons
0 commit comments