- May 17, 2019
-
-
Pierre-Yves David authored
Exchange test takes a lot of time, rsync is one of the factor. Factoring the code will make it easier to improve and measure.
-
Pierre-Yves David authored
-
- May 18, 2019
-
-
Pierre-Yves David authored
This benchmark measure cases where both side has missing changed. pypy and mozilla-try has partial variant for it.
-
- May 19, 2019
-
-
Pierre-Yves David authored
Otherwise, we can modify an inherited list, affecting all other benchmark.
-
- Apr 28, 2019
-
-
Pierre-Yves David authored
This one is dedicated to tracking the time taken for two identical repository to realise they are identical. We take the addition of a new test as an opportunity to give it a proper name to this test.
-
Pierre-Yves David authored
The existing discovery test are now using the new roles information. To keep the compatibility witht he older class structure. We are using the `benchmark_name` feature to keep the same name. We'll probably want to use the very same feature to rename all test later into something more sensible. However, as a side effect, this means we are dropping the "same" variant of the subset/super set test. So ASV will be confused by the params value change... <sigh>. Important note: for this discovery to work, benchmark now needs to be have an upgraded reference.
-
- Apr 27, 2019
-
-
Pierre-Yves David authored
benchmark test can now "easily" use the new role information. A `BaseExchangeTimeSuite` subclass can use the `role_action` and `role_subtype` to declare the role the class is using. Then decorate the class with `@setup_role` to make sure the parameters variants are properly set. Finally the appropriate data can we accessed through the `role_data` property.
-
Pierre-Yves David authored
This make sure it is available for those who need it without being required to initialize the object. This will be useful as we migrate exchange tests from the "old way" (clone_path) to the "new way" (role based), see later changeset for details.
-
Pierre-Yves David authored
The debug command scope is not stable and impact the result. We should use the `perfdiscovery` command instead. The current main limitation for the `perfdiscovery` command right now is the fact we don't make is available for revision before it was introduced (even if it should be compatible).
-
Pierre-Yves David authored
This is not a long doc, but should help to navigate the code.
-
Pierre-Yves David authored
This is not a long doc, but should help to navigate the code.
-
Pierre-Yves David authored
The function gather existing code to compute a partial repository path for a given partial version of the main repository. This will be useful later for a more flexible access to partials during discovery.
-
Pierre-Yves David authored
The strip is an implementation detail. The partial_key seems a clearer name. (note: I am not sure about the "partial" part, but I could not find any better).
-
Pierre-Yves David authored
In some situation, the tear down might try to access an attribute not initialized yet. This is annoying since this usually hide the initial error. To avoid that, we set the default attribute value on the class to make sure the tear down find an appropriate value.
-
- Mar 30, 2019
-
-
Pierre-Yves David authored
If no revision is checkout, the "update" variant of the test will fail since there are no file to update. Before this change, the error was quite obscure: no file name was return, as a result the filepath was just the repo directory and `open(…)` call failed. Now we explicitly detect the error and warn about it. I am not sure what error should be raised, So I am going for a classical ValueError.
-
Pierre-Yves David authored
-
- Mar 29, 2019
-
-
Pierre-Yves David authored
This mark the end of the infamous hidden directory.
-
- Mar 28, 2019
-
-
Boris Feld authored
-
- Mar 27, 2019
-
-
Boris Feld authored
We need to use the repo name with the hash in order to find the right partial repository.
-
- Mar 28, 2019
-
-
Raphaël Gomès authored
`hg web` was broken for a certain range of changesets. Make use of the new `not_compatible_with` decorator to reflect that.
-
- Mar 05, 2019
-
-
Raphaël Gomès authored
Strip variants can differ between repos and should not be hardcoded. This change uses the data from the .benchrepo file for each repo to pass to each corresponding test. We are new storing the entire repo prefix instead of only storing the hash, since it is just as unique, removing the need to recompute the prefix from the hash later in the code.
-
- Mar 04, 2019
-
-
Raphaël Gomès authored
This list used to be hardcoded, this change gathers the unique strip variants into a list from every .benchrepo file for use in the ASV test matrix.
-
- Mar 05, 2019
-
-
Boris Feld authored
As we know use kwargs in setup too, we need to change how we compute the repo_name.
-
Boris Feld authored
-
Boris Feld authored
-
Boris Feld authored
-
Boris Feld authored
-
- Jan 24, 2019
-
-
Georges Racinet authored
This is using the same stripped clone as benchmarks for incoming/outgoing There are two different benchmark, one for a case where the source in a superset or the remote, one for case where the source in a subset of the remote. A third option where there are exclusive changeset on both side will be implemented later. Side note: perfdiscovery has been introduced in Mercurial public changeset db6cace18765 The pure 'subset' case is interesting, because that's what a CI bot does all the time. It's more generally the point of interest for VCS-based distribution, such as sets of tools etc. (Later on, we shall introduce a 'mixed' case, where both repos have heads that their peer doens't know of.)
-
- Nov 23, 2018
-
-
Pierre-Yves David authored
Now that we have yaml, the sky is the limit.
-
- Nov 02, 2018
-
-
Boris Feld authored
-
- Sep 06, 2018
-
-
Pierre-Yves David authored
-
- Aug 30, 2018
-
-
Pierre-Yves David authored
We use the new options offered by upstream ASV. We use a 3 repeat minimum and 10 repeat max. Max time (before we give up on max repeat) is 60 seconds per variants.
-
- Jun 15, 2018
-
-
Philippe Pepiot authored
So we can compare clone with --noupdate
-
- Jun 12, 2018
-
-
Philippe Pepiot authored
In a dedicated class since results cannot be correlated with clone benchmarks. Also unlike clone benchmarks, don't benchmark with a given revision since --stream will ignore it.
-
Philippe Pepiot authored
This is a bit tricky because there are several constraints: * we must cleanup after clone (in setup/teardown) to limit disk space usage * we must limit benchmark duration (avoid to run too much time on big repositories) * we must have more stable results for small repositories The whole algorithm is in asv.benchmark.benchmark_timing(). To ensure setup/teardown is called before/after each clone we *must* have number = 1 (so timer.timeit() will be called with 1 as argument). Then it's important to have a proper sample_time set, because it will control how long the benchmark will run. timeit() is called `repeat` (default 10) times unless the whole benchmark (= one benchmark function with one set of parameter) takes more than `repeat` * 1.3 * `sample_time` where `sample_time` has a default value of 0.1 This can produce very short times, for instance for a clone duration of 20s this will only run one clone even if repeat is set 10... So use sample_time = (max_time_we_want_the_benchmark_to_run / (repeat * 1.3)) to control maximum whole benchmark duration and to ensure timeit() will be called close to `repeat` times.
-
Philippe Pepiot authored
'strip' param was only taking one value 'same'. Drop this param by inheriting from BaseTestSuite instead of BaseExchangeTimeSuite.
-
Philippe Pepiot authored
In following changesets we will add exchanges benchmarks not using "strip" or "revset" params. Moving this outside of the BaseExchangeTimeSuite allow to re-use this logic without inheriting from it.
-
- May 17, 2018
-
-
Philippe Pepiot authored
This apply to files, archive and exchange benchmarks. Some reference repositories doesn't have a 'default' revision, or it relate to very old changesets that are not stripped by prepare_repos.py, so exchange benchmarks might be irrelevant.
-
- Aug 14, 2018
-
-
Pierre-Yves David authored
The extra "-" is invalid.
-
Pierre-Yves David authored
-