Skip to content

Commit 5b60b5d

Browse files
committed
add calc for percent change
1 parent aac6faf commit 5b60b5d

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

internal/cmd/perfcomp/energystatistics.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,10 @@ func GetZScore(x, u, o float64) float64 {
7272
}
7373
return (x - u) / o
7474
}
75+
76+
func GetPercentageChange(x, u float64) float64 {
77+
if u == 0 {
78+
return 0
79+
}
80+
return ((x - u ) / u) * 100
81+
}

internal/cmd/perfcomp/main.go

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,16 @@ type StableRegion struct {
7777
}
7878

7979
type EnergyStats struct {
80-
Benchmark string
81-
Measurement string
82-
PatchVersion string
83-
StableRegion StableRegion
84-
PatchValues []float64
85-
E float64
86-
T float64
87-
H float64
88-
Z float64
80+
Benchmark string
81+
Measurement string
82+
PatchVersion string
83+
StableRegion StableRegion
84+
PatchValues []float64
85+
PercentChange float64
86+
E float64
87+
T float64
88+
H float64
89+
Z float64
8990
}
9091

9192
func main() {
@@ -210,15 +211,16 @@ func getEnergyStatsForOneBenchmark(rd RawData, coll *mongo.Collection) ([]*Energ
210211
}
211212
e, t, h := GetEnergyStatistics(mat.NewDense(len(stableRegion.Values), 1, stableRegion.Values), mat.NewDense(1, 1, patchVal))
212213
es := EnergyStats{
213-
Benchmark: testname,
214-
Measurement: measurement,
215-
PatchVersion: rd.Info.Version,
216-
StableRegion: *stableRegion,
217-
PatchValues: patchVal,
218-
E: e,
219-
T: t,
220-
H: h,
221-
Z: GetZScore(patchVal[0], stableRegion.Mean, stableRegion.Std),
214+
Benchmark: testname,
215+
Measurement: measurement,
216+
PatchVersion: rd.Info.Version,
217+
StableRegion: *stableRegion,
218+
PatchValues: patchVal,
219+
PercentChange: GetPercentageChange(patchVal[0], stableRegion.Mean),
220+
E: e,
221+
T: t,
222+
H: h,
223+
Z: GetZScore(patchVal[0], stableRegion.Mean, stableRegion.Std),
222224
}
223225
energyStats = append(energyStats, &es)
224226
}
@@ -245,12 +247,12 @@ func generatePRComment(energyStats []*EnergyStats, version string) string {
245247

246248
comment.WriteString("# 👋GoDriver Performance\n")
247249
fmt.Fprintf(&comment, "The following benchmark tests for version %s had statistically significant changes (i.e., |z-score| > 1.96):\n", version)
248-
comment.WriteString("| Benchmark | Measurement | H-Score | Z-Score | Stable Reg Avg,Med,Std | Patch Value |\n| --- | --- | --- | --- | --- | --- |\n")
250+
comment.WriteString("| Benchmark | Measurement | H-Score | Z-Score | % Change | Stable Reg Avg,Med,Std | Patch Value |\n| --- | --- | --- | --- | --- | --- | --- |\n")
249251
for _, es := range energyStats {
250252
testCount += 1
251253
// if es.H > 0.6 {
252254
if es.Z > 1.96 || es.Z < -1.96 {
253-
fmt.Fprintf(&comment, "| %s | %s | %.4f | %.4f | %.4f,%.4f,%.4f | %.4f |\n", es.Benchmark, es.Measurement, es.H, es.Z, es.StableRegion.Mean, es.StableRegion.Median, es.StableRegion.Std, es.PatchValues[0])
255+
fmt.Fprintf(&comment, "| %s | %s | %.4f | %.4f | %.4f | %.4f,%.4f,%.4f | %.4f |\n", es.Benchmark, es.Measurement, es.H, es.Z, es.PercentChange, es.StableRegion.Mean, es.StableRegion.Median, es.StableRegion.Std, es.PatchValues[0])
254256
}
255257
}
256258

0 commit comments

Comments
 (0)