@@ -198,6 +198,11 @@ getCompareCommitsR before after = do
198198 benchmarks <- db $ materializeCommits $ hash0 NonEmpty. :| [hash1]
199199 lucid do
200200 defaultLayout_ " Compare commits" do
201+ div_ do
202+ p_ do
203+ div_ $ colorize " grey" " grey: no significant change wrt stddev"
204+ div_ $ colorize " red" " red: change exceeding max stddev"
205+ div_ $ colorize " purple" " purple: some change, not seemingly significant"
201206 generateTable generatePluralMetric benchmarks
202207
203208generateTable ::
@@ -244,14 +249,14 @@ generatePluralMetric metrics0 = do
244249 td_ do
245250 div_ do
246251 table_ $ do
247- property Bold " mean" (. metricMean)
248- property Small " σ" (. metricStddev)
249- property Small " min" (. metricRangeLower)
250- property Small " max" (. metricRangeUpper)
252+ let stddev = foldl1 max $ map (. metricStddev) $ metrics
253+ property (Just stddev) Bold " mean" (. metricMean)
254+ property Nothing Small " σ" (. metricStddev)
255+ property Nothing Small " min" (. metricRangeLower)
256+ property Nothing Small " max" (. metricRangeUpper)
251257 where
252258 metrics = List. sortBy (RIO. comparing $ RIO. Down . (. metricTestId)) $ Map. elems metrics0
253- colorize color s = span_ [style_ (" color: " <> color)] s
254- property style label accessor = do
259+ property mstddev style label accessor = do
255260 let textWrapper = case style of
256261 Bold -> strong_
257262 Small -> small_
@@ -265,12 +270,22 @@ generatePluralMetric metrics0 = do
265270 map (shortNum . accessor) $
266271 metrics
267272 " ="
268- colorize " red" $ shortNum $ diff
273+ case mstddev of
274+ Just stddev
275+ | abs diff < stddev ->
276+ colorize " grey" $ shortNum $ diff
277+ | otherwise ->
278+ colorize " red" $ shortNum $ diff
279+ Nothing ->
280+ colorize " purple" $ shortNum $ diff
269281 else
270282 sequence_ $
271283 map (shortNum . accessor) $
272284 take 1 metrics
273285
286+ colorize :: Monad m => Text -> HtmlT m () -> HtmlT m ()
287+ colorize color s = span_ [style_ (" color: " <> color)] s
288+
274289shortNum :: Double -> Html ()
275290shortNum =
276291 span_ [style_ " font-family: monospace" ] .
0 commit comments