You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, thanks for building the Prometheus client in Rust. Really love it.
When doing the benchmark, I added another test case with (&'static str, &'static str) label set as follows:
c.bench_function("counter family with (&'static str, &'static str) label set",
|b| {let family = Family::<(&'static str,&'static str),Counter>::default();
b.iter(|| {
family.get_or_create(&("method","GET")).inc();})},);
Considering there should be no dynamic allocation when accessing the metric with (&'static str, &'static str) label set, I suppose the performance would be the same as the custom type label set.
But the benchmark turned out oppositely. (27ns vs 15ns on avg)
Running benches/family.rs (target/release/deps/family-f5815167dcf70f4a)
Gnuplot not found, using plotters backend
counter family with [(&'static str, &'static str)] label set
time: [41.655 ns 42.005 ns 42.483 ns]
change: [-1.0231% +1.7906% +7.1726%] (p = 0.51 > 0.05)
No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
3 (3.00%) high mild
6 (6.00%) high severe
counter family with Vec<(&'static str, &'static str)> label set
time: [62.579 ns 63.896 ns 65.827 ns]
change: [-1.8609% +0.9648% +4.0991%] (p = 0.58 > 0.05)
No change in performance detected.
Found 6 outliers among 100 measurements (6.00%)
1 (1.00%) high mild
5 (5.00%) high severe
counter family with (&'static str, &'static str) label set
time: [21.716 ns 21.771 ns 21.833 ns]
Found 4 outliers among 100 measurements (4.00%)
2 (2.00%) high mild
2 (2.00%) high severe
counter family with Vec<(String, String)> label set
time: [204.69 ns 208.56 ns 214.56 ns]
change: [-5.1373% -3.8646% -2.4135%] (p = 0.00 < 0.05)
Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe
counter family with custom type label set
time: [14.648 ns 15.786 ns 17.877 ns]
change: [-8.7872% -2.4706% +6.7788%] (p = 0.61 > 0.05)
No change in performance detected.
Found 7 outliers among 100 measurements (7.00%)
2 (2.00%) high mild
5 (5.00%) high severe
I'm not sure where the regression comes from. Is it as expected or did I miss something?
Thanks again for your help. 🙏
The text was updated successfully, but these errors were encountered:
Hi, thanks for building the Prometheus client in Rust. Really love it.
When doing the benchmark, I added another test case with
(&'static str, &'static str)
label set as follows:Considering there should be no dynamic allocation when accessing the metric with
(&'static str, &'static str)
label set, I suppose the performance would be the same as the custom type label set.But the benchmark turned out oppositely. (27ns vs 15ns on avg)
I'm not sure where the regression comes from. Is it as expected or did I miss something?
Thanks again for your help. 🙏
The text was updated successfully, but these errors were encountered: