Lolbench: automagically and empirically discovering Rust performance regressions
1–10 of 42 posts
Re: Lolbench: automagically and empirically discovering Rust performance regressions
#2Re: Lolbench: automagically and empirically discovering Rust performance regressions
#3Re: Lolbench: automagically and empirically discovering Rust performance regressions
#4Is there any equivalent project for java.
Re: Lolbench: automagically and empirically discovering Rust performance regressions
#5Assuming the compiling, and testing is done in the cloud how do you ensure the target platform (processor) doesn't change, and that you aren't being subjected to neighbors who are stealing RAM bandwidth, or CPU cache resources from your VM and impacting the results?
Re: Lolbench: automagically and empirically discovering Rust performance regressions
#6Do you track opt_level=2 (the Firefox Rust opt level) in addition to the default opt_level=3?
Re: Lolbench: automagically and empirically discovering Rust performance regressions
#7Very nice! Do you track opt_level=2 (the Firefox Rust opt level) in addition to the default opt_level=3?
Not yet, but I am tracking this as a desired feature: https://github.com/anp/lolbench/issues/9. The benchmark plan generation, storage keys, and results presentation will at a minimum need to be extended to support a matrix of inputs to each benchmark function. Right now there are a number of implicit assumptions that each benchmark function is tracked as a single series of results.
Re: Lolbench: automagically and empirically discovering Rust performance regressions
#8How do you determine baseline load of the test machine in order to qualify the correctness of the benchmark? Assuming the compiling, and testing is done in the cloud how do you ensure the target platform (processor) doesn't change, and that you aren't being subjected to neighbors who are stealing RAM bandwidth, or CPU cache resources from your VM and impacting the results?
I go into a little bit of detail on this in the talk I link to towards the bottom of the post, here's a direct link for convenience: https://www.youtube.com/watch?v=gSFTbJKScU0.
Re: Lolbench: automagically and empirically discovering Rust performance regressions
#9How do you determine baseline load of the test machine in order to qualify the correctness of the benchmark? Assuming the compiling, and testing is done in the cloud how do you ensure the target platform (processor) doesn't change, and that you aren't being subjected to neighbors who are stealing RAM bandwidth, or CPU cache resources from your VM and impacting the results?
Each benchmark result is only compared against values from running on literally the same machine, actually. I agree that good results here would be extremely difficult to produce on virtualized infra, so I rented a few cheap dedicated servers from Hetzner. I'm glad that I decided to pin results to a single machine, because even between these identically binned machines from Hetzner I saw 2-4% variance between them wh…
Re: Lolbench: automagically and empirically discovering Rust performance regressions
#10Earlier quoted context omitted.
Each benchmark result is only compared against values from running on literally the same machine, actually. I agree that good results here would be extremely difficult to produce on virtualized infra, so I rented a few cheap dedicated servers from Hetzner. I'm glad that I decided to pin results to a single machine, because even between these identically binned machines from Hetzner I saw 2-4% variance between them wh…
A suggestion: consider using callgrind to measure performance (instructions retired, cache misses, branch mispredictions, whatever) instead of wall clock time. It will be much slower per run, but since it will also be precise you shouldn't need to do multiple runs, and you should be able to run a bunch of different benchmarks concurrently without them interfering with each other or having anything else interfere with…