# HG changeset patch # User Pierre-Yves David <pierre-yves.david@octobus.net> # Date 1541462983 -3600 # Tue Nov 06 01:09:43 2018 +0100 # Node ID e366a7c308788c47c9a233521361aee2de47ff78 # Parent 70bb2a3dc1fc8e15d436c8b0ebffec4e7b270907 Add benchmark for perfrevlogwrite We use different tests instead of variants because we expect them to have significantly different performance patterns. diff --git a/benchmarks/others.py b/benchmarks/others.py --- a/benchmarks/others.py +++ b/benchmarks/others.py @@ -99,6 +99,60 @@ *args, **kwargs): return self._run_one('--changelog', distance, nbrev) +class RevlogWriteTestSuite(BaseTestSuite): + params = BaseTestSuite.params[:] + param_names = BaseTestSuite.param_names[:] + + timeout = 1800 + + # add a parameters for the number of read to make + param_names += ['nbrev'] + params += [[100]] + + def _run_one(self, target, nbrev, source, lazydeltabase=False): + cmd = [ + "perfrevlogwrite", + "--quiet", + target, + "--startrev", "-%d" % nbrev, + "--source", source, + ] + if lazydeltabase: + cmd.append("--lazydeltabase") + else: + cmd.append("--no-lazydeltabase") + return self.perfext(*cmd) + + @params_as_kwargs + def track_perfrevlogwrite_changelog(self, nbrev, *args, **kwargs): + return self._run_one('--changelog', nbrev, 'full', lazydeltabase=False) + + @params_as_kwargs + def track_perfrevlogwrite_manifest_full(self, nbrev, *args, **kwargs): + return self._run_one('--manifest', nbrev, 'full', lazydeltabase=False) + + @params_as_kwargs + def track_perfrevlogwrite_manifest_parent_nonlazy(self, nbrev, + *args, **kwargs): + return self._run_one('--manifest', nbrev, 'parent-smallest', + lazydeltabase=False) + + @params_as_kwargs + def track_perfrevlogwrite_manifest_parent_lazy(self, nbrev, *args, **kwargs): + return self._run_one('--manifest', nbrev, 'parent-smallest', + lazydeltabase=True) + + @params_as_kwargs + def track_perfrevlogwrite_manifest_storage_nonlazy(self, nbrev, + *args, **kwargs): + return self._run_one('--manifest', nbrev, 'storage', + lazydeltabase=False) + + @params_as_kwargs + def track_perfrevlogwrite_manifest_storage_lazy(self, nbrev, *args, **kwargs): + return self._run_one('--manifest', nbrev, 'storage', + lazydeltabase=True) + class ManifestPerfTestSuite(BaseTestSuite): params = BaseTestSuite.params + [['persist', 'clear']] param_names = BaseTestSuite.param_names + ['disk_cache']