- Aug 01, 2018
-
-
Pierre-Yves David authored
-
Pierre-Yves David authored
Having the data processing directory inside the source repository is not ideal, but this is what we have for now.
-
Boris Feld authored
Output of tar doesn't seems to be stable and always in the same order.
-
Pierre-Yves David authored
This make is easier to distinct from other config file.
-
Pierre-Yves David authored
This mirror `ID-reference` and seems "better".
-
Pierre-Yves David authored
-
Pierre-Yves David authored
This script is currently a duplicate of "create_stripped_cached_repos.py". We'll remove the old one once the new one is a bit more mature.
-
- Jul 31, 2018
-
-
Pierre-Yves David authored
Hardcoding stuff creates various issues. Lets move to something more flexible.
-
Pierre-Yves David authored
-
Boris Feld authored
Also use urlencode in cache repo dir
-
Boris Feld authored
-
Pierre-Yves David authored
We could use this to easily enable and disabled repository to benchmark on.
-
Pierre-Yves David authored
This might not be the best script ever, but it is a common reference.
-
- Jul 27, 2018
-
-
Boris Feld authored
-
- Jul 25, 2018
-
-
Boris Feld authored
`perffncachewrite` erase the fncache so deactivate right now.
-
- Jun 19, 2018
-
-
Boris Feld authored
-
- May 17, 2018
-
-
Philippe Pepiot authored
So benchmarks/* is flake8 compliant
-
Philippe Pepiot authored
-
Philippe Pepiot authored
By using perfext() Inheriting from BaseTestSuite allow to add global variants easily. We also drop mercurial repo specific revsets (like 'author(mpm)') because AFAIK we never run them and they add some complexity while rewriting with BaseTestSuite. This cause benchmarks to be renamed and prefixed by RevsetTestSuite. To remove old benchmarks results: asv rm 'benchmark=revset.*'
-
Philippe Pepiot authored
By using perfext(). Inheriting from BaseTestSuite allow to add global variants (HGRCPATH / --config) within the entire test suite. This cause benchmarks to be renamed and prefixed by 'PerfTestSuite'. To remove old benchmarks results: asv rm 'benchmark=others.*'
-
Philippe Pepiot authored
This will be used to run perf.py based track benchmark on classes inheriting from BaseTestSuite.
-
Philippe Pepiot authored
This will be used for commands that may not exists in earliers mercurial versions. Move this logic to BaseTestSuite since we will use it when switching perf.py based benchmarks to inherit from BaseTestSuite in next changesets
-
Philippe Pepiot authored
All methods on these base classes are now unused, so simply inherit from BaseTestSuite. _timeit() was unused for a while, when we switched from asv track benchmarks to time benchmarks.
-
Philippe Pepiot authored
-
Philippe Pepiot authored
-
Philippe Pepiot authored
Instead of _execute(). Also remove useless 'return' statements since it's not used for *time_* benchmarks.
-
Philippe Pepiot authored
This is not a benchmark and it's unused.
-
Philippe Pepiot authored
-
Philippe Pepiot authored
-
Philippe Pepiot authored
This is a wrapper to check_output that run currently benchmarked hg (self.hgpath). This also use the repository in self.repo_path by default but others can be used (especially useful for exchange benchmarks). The goal is to use this wrapper everywere instead of specific wrappers (_execute, _single_execute, subprocess.check_output) in next changesets.
-
Philippe Pepiot authored
This is used to run given command with a controlled environment and handle generic behavior regarding expected return code. Use it in _single_execute() for Time and Track base classes.
-
Philippe Pepiot authored
-
Philippe Pepiot authored
It's never used without default value (True).
-
- May 15, 2018
-
-
Philippe Pepiot authored
By using started_at / ended_at in json results. Unfortunately there is no detail about parameters, probably something to implement on ASV. Exemple output: ./asv_result_time.py results/cyanea/7de7bd40-virtualenv-py2.7.json Benchmark Time % Total 16:05:11 100% basic_commands.ExchangeTimeSuite.time_outgoing 3:31:19 21.89% basic_commands.ExchangeTimeSuite.time_incoming 3:30:10 21.77% basic_commands.PushPullTimeSuite.time_pull 2:52:14 17.84% basic_commands.PushPullTimeSuite.time_push 1:57:41 12.19% basic_commands.DiscoveryTimeSuite.time_debugdiscovery 1:46:00 10.98% basic_commands.BundleTimeTestSuite.time_bundle 0:35:58 3.73% basic_commands.UpdateTimeTestSuite.time_up_tip 0:34:43 3.60% basic_commands.ExchangeTimeSuite.time_debugdiscovery 0:20:09 2.09% basic_commands.CloneTimeSuite.time_clone 0:13:36 1.41% basic_commands.TimeTestSuite.time_version 0:03:50 0.40% basic_commands.TimeTestSuite.time_id 0:03:31 0.36% basic_commands.TimeTestSuite.time_emptydiff 0:03:29 0.36% basic_commands.TimeTestSuite.time_status_tip 0:03:29 0.36% basic_commands.TimeTestSuite.time_diff_tip 0:03:29 0.36% basic_commands.TimeTestSuite.time_summary 0:03:25 0.35% basic_commands.TimeTestSuite.time_id_current 0:03:19 0.34% basic_commands.TimeTestSuite.time_emptystatus 0:03:18 0.34% basic_commands.TimeTestSuite.time_log_tip 0:03:15 0.34% basic_commands.TimeTestSuite.time_bookmarks 0:03:11 0.33% others.track_branchmap 0:01:46 0.18% others.track_changegroupchangelog 0:01:29 0.15% others.track_perfindex 0:00:33 0.06% others.track_ancestors 0:00:33 0.06% others.track_manifest 0:00:31 0.05% others.track_perfwalk 0:00:31 0.05% others.track_status 0:00:31 0.05% basic_commands.TestSuite.track_commit 0:00:25 0.04% others.track_dirstate 0:00:18 0.03% others.track_perffncacheload 0:00:17 0.03% others.track_perffncacheencode 0:00:17 0.03% others.track_tags 0:00:17 0.03% others.track_perfparents 0:00:17 0.03% others.track_perfdirstatewrite 0:00:16 0.03% others.track_perffncachewrite 0:00:16 0.03% others.track_startup 0:00:16 0.03% others.track_perfphases 0:00:16 0.03% others.track_heads 0:00:16 0.03%
-
- Apr 26, 2018
-
-
Philippe Pepiot authored
hgweb is broken on some revisions of mercurial (see https://bz.mercurial-scm.org/show_bug.cgi?id=5851). Skip http benchmark on such revisions to avoid long timeouts and hgweb process leak. Add a 'skip' key to config.yaml with known broken revisions for given feature, compile all revisions in repos/skip.json and use it in the benchmark code to decide of current revision should be skipped or not. Use asv way to skip tests in setup() and raise NotImplementedError in such cases. $ asv run --bench time_push --show-stderr --no-pull 4.6rc0 ================ =========== =================== ============ ============ -- revset ------------------------------------------------ ------------------------- repo repo_type strip None default ================ =========== =================== ============ ============ mercurial-2017 local same 98.9±1ms 102±1ms mercurial-2017 local last(all(), 10) 127±1ms 139±10ms mercurial-2017 local last(all(), 100) 190±3ms 212±2ms mercurial-2017 local last(all(), 1000) 823±20ms 839±7ms mercurial-2017 ssh same 325±7ms 333±10ms mercurial-2017 ssh last(all(), 10) 405±30ms 383±9ms mercurial-2017 ssh last(all(), 100) 468±30ms 495±20ms mercurial-2017 ssh last(all(), 1000) 1.27±0.05s 1.26±0.02s mercurial-2017 http same n/a n/a mercurial-2017 http last(all(), 10) n/a n/a mercurial-2017 http last(all(), 100) n/a n/a mercurial-2017 http last(all(), 1000) n/a n/a ================ =========== =================== ============ ============
-
Philippe Pepiot authored
-
- Apr 12, 2018
-
-
Philippe Pepiot authored
Since we are using the perf.py from the benchmarked mercurial, some commands may not be availables. When hg fail with exit code 255, use 'hg help' to determine the existence of the command. Skip gracefully when command does not exist by returning NaN which is the equivalent of "skipped" for asv (same behavior as raising NotImplementedError in setup()). Output for "asv run --bench perfphases --show-stderr --no-pull f85de28eae32e7d3": ====================== ===== repo ---------------------- ----- pypy-2017 n/a netbeans-2017 n/a mozilla-central-2017 n/a mercurial-2017 n/a ====================== =====
-
- Apr 24, 2018
-
-
Boris Feld authored
We want to display N changesets but `tip~%d:` can display much more changesets than N.
-
- Apr 23, 2018
-
-
Boris Feld authored
-
Boris Feld authored
-