@@ -341,6 +341,31 @@ <h2>Comparing <span id="stat-header">{{stat}}</span> between <span id="before">{
341
341
</ div >
342
342
</ fieldset >
343
343
< div v-if ="data " id ="content " style ="margin-top: 15px ">
344
+ < div >
345
+ < span style ="font-weight: bold; "> Summary:</ span >
346
+ < span class ="positive ">
347
+ {{summary.numRegressed}}
348
+ < svg style ="width:18px;height:18px " viewBox ="0 0 24 24 ">
349
+ < path
350
+ d ="M16,18L18.29,15.71L13.41,10.83L9.41,14.83L2,7.41L3.41,6L9.41,12L13.41,8L19.71,14.29L22,12V18H16Z ">
351
+ </ path >
352
+ </ svg >
353
+ </ span >
354
+ < span >
355
+ {{summary.numUnchanged}}
356
+ < svg style ="width:18px;height:18px " viewBox ="0 0 24 24 ">
357
+ < path d ="M22,12L18,8V11H3V13H18V16L22,12Z "> </ path >
358
+ </ svg >
359
+ </ span >
360
+ < span class ="negative ">
361
+ {{summary.numImproved}}
362
+ < svg style ="width:18px;height:18px " viewBox ="0 0 24 24 ">
363
+ < path
364
+ d ="M16,6L18.29,8.29L13.41,13.17L9.41,9.17L2,16.59L3.41,18L9.41,12L13.41,16L19.71,9.71L22,12V6H16Z ">
365
+ </ path >
366
+ </ svg >
367
+ </ span >
368
+ </ div >
344
369
< table id ="benches " class ="compare ">
345
370
< template v-for ="bench in benches ">
346
371
< tbody >
@@ -572,6 +597,37 @@ <h2>Comparing <span id="stat-header">{{stat}}</span> between <span id="before">{
572
597
} ,
573
598
stat ( ) {
574
599
return findQueryParam ( "stat" ) || "instructions:u" ;
600
+ } ,
601
+ summary ( ) {
602
+ let numRegressed = 0 ;
603
+ let numImproved = 0 ;
604
+ let numUnchanged = 0 ;
605
+ for ( let name of Object . keys ( this . data . a . data ) ) {
606
+ for ( let d of this . data . a . data [ name ] ) {
607
+ const run = d [ 0 ] ;
608
+ const datumA = d [ 1 ] ;
609
+ const datumB = this . data . b . data [ name ] ?. find ( x => x [ 0 ] == run ) ?. [ 1 ] ;
610
+ if ( ! datumB ) {
611
+ continue ;
612
+ }
613
+ let percent = 100 * ( ( datumB - datumA ) / datumA ) ;
614
+ const isDodgy = this . isDodgy ( name , run ) ;
615
+ const threshold = isDodgy ? 1.0 : 0.2 ;
616
+ if ( percent > threshold ) {
617
+ numRegressed += 1 ;
618
+ } else if ( percent < - threshold ) {
619
+ numImproved += 1 ;
620
+ } else {
621
+ numUnchanged += 1
622
+ }
623
+ }
624
+ }
625
+ return {
626
+ numRegressed,
627
+ numImproved,
628
+ numUnchanged,
629
+ }
630
+
575
631
}
576
632
} ,
577
633
methods : {
@@ -620,6 +676,14 @@ <h2>Comparing <span id="stat-header">{{stat}}</span> between <span id="before">{
620
676
}
621
677
return result ;
622
678
} ,
679
+ isDodgy ( name , run ) {
680
+ let variance = this . data . variance ;
681
+ if ( ! variance ) {
682
+ return false ;
683
+ }
684
+ variance = this . data . variance [ name + "-" + run ] ;
685
+ return ( variance ?. description ?. type ?? "Normal" ) != "Normal" ;
686
+ }
623
687
} ,
624
688
} ) ;
625
689
0 commit comments