Skip to content
Snippets Groups Projects
Commit f937911243cf authored by Pierre-Yves David's avatar Pierre-Yves David :octopus:
Browse files

benchmark: add a score of new rename related benchmark

We test a wide array of cases to better track how they will evolves depending of
the copy-tracing method.

Some might be a bit redundant, but there is enough small variation than it is
useful to track many variants.

Ideally, we could run various pair in the same area, but that would greatly
increase the run time. (the current change already have a quite visible impact).

Appropriate benchmark variable have been set for repository. We restricted them
to zstd + sparse-revlog variante to reduce run time.
parent 3d082f37af74
No related branches found
No related tags found
No related merge requests found
......@@ -55,3 +55,152 @@
# return float('nan')
# cmd.append("--config")
# cmd.append("experimental.copies.read-from=compatibility")
PERFPATHCOPIES_NODE = "2e9fe9e2671fee0a564ca77e2f3656248163cb51"
class PerfTracecopiesSuite(BaseTestSuite):
"""benchmark the tracecopies logic over some revision
This benchmark requires the repository data to specify the following value:
benchmark-variables:
trace-copies:
<BENCH_ID>:
source: REV
destination: REV
"""
timeout = 300
def _perfcopies(self, source, destination, skip_introrev=False):
missing_cmd = b'::p1(2e9fe9e2671fee0a564ca77e2f3656248163cb51)'
if self._matchrevset(missing_cmd, self.get_asv_rev()):
raise NotImplementedError("perfpathcopies not available")
cmd = ['perfpathcopies']
cmd.append(source)
cmd.append(destination)
return self.perfext(*cmd)
def _get_data(self, benchid):
x = REPO_DETAILS.get(self.repo_name)
x = x.get('benchmark-variables', {})
x = x.get('trace-copies', {})
x = x.get(benchid, {})
source = x.get('source')
destination = x.get('destination')
skip_introrev = x.get('skip_introrev', False)
if source is None or destination is None:
raise NotImplementedError("no target defined for this source")
return source, destination, skip_introrev
@benchmark_name('internal.copies_and_renames.x_revs_x_added_0_copies.track_time')
@params_as_kwargs
def track_x_revs_x_added_0_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x_revs_x_added_0_copies'))
@benchmark_name('internal.copies_and_renames.x_revs_x000_added_0_copies.track_time')
@params_as_kwargs
def track_x_revs_x000_added_0_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x_revs_x000_added_0_copies'))
@benchmark_name('internal.copies_and_renames.x_revs_x_added_x_copies.track_time')
@params_as_kwargs
def track_x_revs_x_added_x_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x_revs_x_added_x_copies'))
@benchmark_name('internal.copies_and_renames.x_revs_x00_added_x_copies.track_time')
@params_as_kwargs
def track_x_revs_x00_added_x_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x_revs_x00_added_x_copies'))
@benchmark_name('internal.copies_and_renames.x_revs_x000_added_x000_copies.track_time')
@params_as_kwargs
def track_x_revs_x000_added_x000_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x_revs_x000_added_x000_copies'))
@benchmark_name('internal.copies_and_renames.x_revs_x0000_added_x0000_copies.track_time')
@params_as_kwargs
def track_x_revs_x0000_added_x0000_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x_revs_x0000_added_x0000_copies'))
@benchmark_name('internal.copies_and_renames.x000_revs_xx00_added_0_copies.track_time')
@params_as_kwargs
def track_x000_revs_xx00_added_0_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x000_revs_xx00_added_0_copies'))
@benchmark_name('internal.copies_and_renames.x000_revs_x000_added_x_copies.track_time')
@params_as_kwargs
def track_x000_revs_x000_added_x_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x000_revs_x000_added_x_copies'))
@benchmark_name('internal.copies_and_renames.x000_revs_x000_added_x000_copies.track_time')
@params_as_kwargs
def track_x000_revs_x000_added_x000_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x000_revs_x000_added_x000_copies'))
@benchmark_name('internal.copies_and_renames.x0000_revs_x_added_0_copies.track_time')
@params_as_kwargs
def track_x0000_revs_x_added_0_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x0000_revs_x_added_0_copies'))
@benchmark_name('internal.copies_and_renames.x0000_revs_x_added_x_copies.track_time')
@params_as_kwargs
def track_x0000_revs_x_added_x_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x0000_revs_x_added_x_copies'))
@benchmark_name('internal.copies_and_renames.x0000_revs_xx000_added_x_copies.track_time')
@params_as_kwargs
def track_x0000_revs_xx000_added_x_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x0000_revs_xx000_added_x_copies'))
@benchmark_name('internal.copies_and_renames.x0000_revs_xx000_added_0_copies.track_time')
@params_as_kwargs
def track_x0000_revs_xx000_added_0_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x0000_revs_xx000_added_0_copies'))
@benchmark_name('internal.copies_and_renames.x0000_revs_xx000_added_x000_copies.track_time')
@params_as_kwargs
def track_x0000_revs_xx000_added_x000_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x0000_revs_xx000_added_x000_copies'))
@benchmark_name('internal.copies_and_renames.x0000_revs_x0000_added_x0000_copies.track_time')
@params_as_kwargs
def track_x0000_revs_x0000_added_x0000_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x0000_revs_x0000_added_x0000_copies'))
@benchmark_name('internal.copies_and_renames.x00000_revs_x_added_0_copies.track_time')
@params_as_kwargs
def track_x00000_revs_x_added_0_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x00000_revs_x_added_0_copies'))
@benchmark_name('internal.copies_and_renames.x00000_revs_x00000_added_0_copies.track_time')
@params_as_kwargs
def track_x00000_revs_x00000_added_0_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x00000_revs_x00000_added_0_copies'))
@benchmark_name('internal.copies_and_renames.x00000_revs_x_added_x_copies.track_time')
@params_as_kwargs
def track_x00000_revs_x_added_x_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x00000_revs_x_added_x_copies'))
@benchmark_name('internal.copies_and_renames.x00000_revs_x000_added_x_copies.track_time')
@params_as_kwargs
def track_x00000_revs_x000_added_x_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x00000_revs_x000_added_x_copies'))
@benchmark_name('internal.copies_and_renames.x00000_revs_x0000_added_x0000_copies.track_time')
@params_as_kwargs
def track_x00000_revs_x0000_added_x0000_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x00000_revs_x0000_added_x0000_copies'))
@benchmark_name('internal.copies_and_renames.x00000_revs_x00000_added_x0000_copies.track_time')
@params_as_kwargs
def track_x00000_revs_x00000_added_x0000_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x00000_revs_x00000_added_x0000_copies'))
@benchmark_name('internal.copies_and_renames.x00000_revs_x00000_added_x000_copies.track_time')
@params_as_kwargs
def track_x00000_revs_x00000_added_x000_copies(self, *args, **kwargs):
return self._perfcopies(*self._get_data('x00000_revs_x00000_added_x000_copies'))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment