Skip to content

Commit ad3f582

Browse files
committed
Add fields on statistics to benchmark JSON
1 parent 05e04f1 commit ad3f582

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

bench/bench.ml

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,15 +110,17 @@ module Stats = struct
110110
median : float;
111111
sd : float;
112112
inverted : bool;
113+
best : float;
113114
runs : int;
114115
}
115116

116-
let scale factor { mean; median; sd; inverted; runs } =
117+
let scale factor { mean; median; sd; inverted; best; runs } =
117118
{
118119
mean = mean *. factor;
119120
median = median *. factor;
120121
sd = sd *. factor;
121122
inverted;
123+
best = best *. factor;
122124
runs;
123125
}
124126

@@ -139,25 +141,34 @@ module Stats = struct
139141
let mean = mean_of times in
140142
let sd = sd_of times mean in
141143
let median = median_of times in
142-
{ mean; sd; median; inverted; runs }
144+
let best =
145+
if inverted then Array.fold_left Float.max Float.min_float times
146+
else Array.fold_left Float.min Float.max_float times
147+
in
148+
{ mean; sd; median; inverted; best; runs }
143149

144150
let to_nonbreaking s =
145151
s |> String.split_on_char ' '
146152
|> String.concat " " (* a non-breaking space *)
147153

148154
let to_json ~name ~description ~units t =
149-
let metric value =
155+
let trend =
156+
if t.inverted then `String "higher-is-better"
157+
else `String "lower-is-better"
158+
in
159+
[
150160
`Assoc
151161
[
152162
("name", `String (to_nonbreaking name));
153-
("value", `Float value);
163+
("value", `Float t.median);
154164
("units", `String units);
155-
( "trend",
156-
if t.inverted then `String "higher-is-better"
157-
else `String "lower-is-better" );
165+
("trend", trend);
158166
("description", `String description);
167+
("#best", `Float t.best);
168+
("#mean", `Float t.mean);
169+
("#median", `Float t.median);
170+
("#sd", `Float t.sd);
159171
("#runs", `Int t.runs);
160-
]
161-
in
162-
[ metric t.median ]
172+
];
173+
]
163174
end

0 commit comments

Comments
 (0)