- 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
-
Boris Feld authored
-
- Apr 12, 2018
-
-
Philippe Pepiot authored
Results for "asv dev --bench time_archive": ====================== ======= ======= -- param2 ---------------------- --------------- repo files tar ====================== ======= ======= pypy-2017 8.17s 7.96s netbeans-2017 2.46m 2.44m mozilla-central-2017 2.53m 2.40m mercurial-2017 2.06s 2.13s ====================== ======= =======
-
Philippe Pepiot authored
Results for "asv dev --bench time_files": ====================== ======= repo ---------------------- ------- pypy-2017 127ms netbeans-2017 916ms mozilla-central-2017 1.30s mercurial-2017 103ms ====================== =======
-
- Apr 19, 2018
-
-
Boris Feld authored
-
Boris Feld authored
-
- Apr 12, 2018
-
-
Philippe Pepiot authored
When running "asv dev" there is no virtualenv managed by asv, so use the local installation in ./mercurial
-
- Apr 05, 2018
-
-
Philippe Pepiot authored
By spawning a hg serve in setup() that serve repositories in repo/ It use a dynamic port allocation, used port is then read from "hg serve" stdout.
-
Philippe Pepiot authored
For older versions of mercurial (like 3.2.3) on big repos (like netbeans), exchange benchmarks can take ~60s to run, with 20 repeatitions it take 20 minutes to have a value. Set the timeout to 30 minutes then.
-
- Apr 04, 2018
-
-
Philippe Pepiot authored
This will ease adding new params later without needing to change each benchmark method.
-
Philippe Pepiot authored
When executing benchmarks with remote ssh repositories, do not use the default environment, clear it (env -i) and use an empty HGRCPATH.
-
- Mar 22, 2018
-
-
Philippe Pepiot authored
This work by adding a 'type' param which can be local or ssh. For ssh, use '--remotecmd /path/to/benchmarked/hg' and 'ssh://localhost//path/to/repo', this assume the user running asv can ssh to localhost without password by using a key without passphrase or with ssh-agent. To have ssh-agent working we must allow passing SSH_AUTH_SOCK through subprocesses.
-
Philippe Pepiot authored
-
Philippe Pepiot authored
Commands are almost the same, so extract this in a run() helper. This will help for implementing ssh/http exchange benchmarks
-
Philippe Pepiot authored
* debugdiscovery does not support revset argument, so move it to its own class with a single 'revset' param combination. * expected return code is always 0
-
Philippe Pepiot authored
-
- Mar 28, 2018
-
-
Boris Feld authored
-
- Jan 31, 2018
-
-
Philippe Pepiot authored
In asv development version goal_time is now sample_time: https://github.com/airspeed-velocity/asv/pull/575
-
Philippe Pepiot authored
In ASV setup is run for each repeat but benchmark function is run `number` of time within the same repetition (calling it a "sample"). So for push / pull benchmarks, number should be set to 1 (call setup before each call of the benchmark method), also setup isn't called during "warmup" time, so disable it. Set repeat to 20 (instead of the default 10) this should be enough to have stable results while keeping benchmark time reasonable. Also move benchmark params (number, timer) to class variable.
-
- Mar 02, 2018
-
-
Boris Feld authored
-
- Feb 20, 2018
-
-
Boris Feld authored
-
- Jan 24, 2018
-
-
Boris Feld authored
https://www.mercurial-scm.org/repo/hg/rev/33c8a683 was a big regression that was later put behind a config knob.
-
Philippe Pepiot authored
-
Boris Feld authored
Add https://www.mercurial-scm.org/repo/hg/rev/b5613bda for bookmarks, it mainly affects bookmarks-free repositories.
-
- Jan 23, 2018
-
-
Philippe Pepiot authored
We don't need bundles backups
-
Philippe Pepiot authored
Using --pull to avoid hardlinks (most frequent use case). Only benchmark mercurial-2017 repo for now, others are too big and will timeout.
-
Philippe Pepiot authored
-
- Jan 19, 2018
-
-
Philippe Pepiot authored
expect a return code of 1 for incoming, outgoing and push in this case.
-
Philippe Pepiot authored
Practically this change nothing
-
- Jan 17, 2018
-
-
Philippe Pepiot authored
Implement a new base benchmark class that is shared with incoming/outgoing benchmarks. push benchmark use rsync with hardlinks to "reset" the clone of the partial clone at each repeat. Use a timeout of 300 which is enough for me on mozilla repo.
-
Philippe Pepiot authored
We may want use multiple partial clones in the future, set an unique name for a given partial clone to partial-$repo_name-$stripped_revset(b64 encoded)
-
Philippe Pepiot authored
Use prepare_repos.py to create partial benchmarks which are cloned, then stripped. This use debugupdatecahce which require hg >= 4.3 (we use the system installed hg for that). Partial clones are then used in incoming/outgoing benchmark which can then be switched to "time" benchmark allowing ASV to control the number of loop etc. Since we're using subprocesses use timeit.default_timer as timer.
-
Philippe Pepiot authored
By merging check_repositories() in clone_repositories
-
- Jan 15, 2018
-
-
Boris Feld authored
The test makes the IO/WAIT go up to 50% on the benchmark machine, we need to find another way like maybe snapshotting the repository.
-
Boris Feld authored
The way of cloning repositories when there is some differences is not realist as the resulting repositories will contains only one head.
-