igraph / rigraph

igraph R package
https://r.igraph.org
532 stars 200 forks source link

How do we check changes don't affect performance #1338

Open maelle opened 2 months ago

szhorvat commented 2 months ago

Well, this was a minor part of the proposal we submitted to the CZI, and something I always wanted to do, but we didn't really have the manpower.

This should be done primarily for the C core.

It would be nice to have benchmarks running continuously, and having daily reports. We do have some benchmarks in https://github.com/igraph/igraph/tree/master/tests/benchmarks

What is missing:

maelle commented 2 months ago

I opened this because of part of the discussion in #1327, for context.

maelle commented 2 months ago

Virtual machine in the cloud are not suitable for benchmarking:

Why? Because it's not the same machine over time?

szhorvat commented 2 months ago

Yes, because it's not the same machine, and because a single physical machine hosts multiple virtual machines. Basically, performance is unpredictable.

szhorvat commented 2 months ago

I opened this because of part of the discussion in #1327, for context.

Sorry, so this was meant to be R specific.

For that, just keep in mind the issues with RStudio significantly slowing down interruption checks (likely by an unpredictable amount that depends on the state of its GUI ...). If you develop some benchmarks for R specifically, it's a good idea to run them from the command line, with no GUI.

maelle commented 2 months ago

https://github.com/lorenzwalthert/touchstone