- Feb 22, 2025
-
-
Pierre-Yves David authored
Same rational the parent changesets.
-
Pierre-Yves David authored
This is a follow up to e6069f84abbb. It turns about that there are multiple test condition that needs cleanup. This handle the usage of the first one.
-
- Jun 19, 2024
-
-
Raphaël Gomès authored
The performance of this has been looked at for quite some time, and some workflows are actually quite a bit faster than with the Python + C code. However, we are still (up to 20%) slower in some crucial places like cloning certain repos, log, cat, which makes this an incomplete rewrite. This is mostly due to the high amount of overhead in Python <-> Rust FFI, especially around the VFS code. A future patch series will rewrite the VFS code in pure Rust, which should hopefully get us up to par with current perfomance, if not better in all important cases. This is a "save state" of sorts, as this is a ton of code, and I don't want to pile up even more things in a single review. Continuing to try to match the current performance will take an extremely long time, if it's not impossible, without the aforementioned VFS work.
-
- Apr 14, 2024
-
-
Pierre-Yves David authored
By default, we still profile the first run only. However profiling more run help to understand side effect from one run to the other. So we add an option to be able to do so.
-
- Feb 22, 2024
-
-
Pierre-Yves David authored
Querying the tip most revision will require the cache to warm the same as calling the dedicated method. This avoid using a method that is mostly meant for internal use and will be renamed in a coming changesets.
-
- Jan 08, 2024
-
-
Arseniy Alekseyev authored
It turns out (not too shockingly!) the kernel sometimes has some work to do, perhaps at the very least context-switching, so asserting the system time is 0.000000 doesn't work.
-
- Oct 11, 2023
-
-
Pierre-Yves David authored
-
- Jun 22, 2023
-
-
Pierre-Yves David authored
This will help us to assert the performance of different versions in more diverse situations. We introduce helper function in the tags module in case invalidating such cache becomes different in the future.
-
- Jun 23, 2023
-
-
Pierre-Yves David authored
This is much more useful and end up enable it everywhere. I don't think we have strong backward compatibility guarantee for perf.
-
- Jun 26, 2023
-
-
kiilerix authored
Testing on Fedora 38 failed with: egrep: warning: egrep is obsolescent; using grep -E The warning comes from https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 . For further anecdotal evidence of the change, see https://www.phoronix.com/news/GNU-Grep-3.8-Stop-egrep-fgrep . This reverses the code check that goes back to e7d3b509af8b. grep -E is POSIX, but there is a risk that it doesn't work the same on all platforms - especially older Unix versions. It should however always be possible to put a GNU grep in $PATH before running the tests.
-
- Jun 17, 2023
-
-
Pierre-Yves David authored
-
- Jun 01, 2023
-
-
Pierre-Yves David authored
Some code path are far too fast now. We raise de number to make sure the run keep to that floor.
-
- Jan 04, 2023
-
-
Matt Harbison authored
Presumably these were paired with `(no-py3 !)` at one point, but now they were unconditionally true. test-check-code.t required a couple of `(glob)` markers on the changed lines in test-lfs-serve-access.t, because of the `$LOCALIP` usage on those lines. Not sure how those lines slipped through the checks previously.
-
- Aug 25, 2022
-
-
Pierre-Yves David authored
There a lot of repetitive bundle application message we do not care about.
-
Pierre-Yves David authored
There a lot of repetitive transaction message we do not care about.
-
- Jul 28, 2022
-
-
Pierre-Yves David authored
That part is responsible of serious slowdown in some `hg pull/unbundle` case. So lets add a way to benchmark it.
-
- Jul 11, 2022
-
-
Pierre-Yves David authored
Check documentation for details.
-
Pierre-Yves David authored
-
- Feb 20, 2022
-
-
Gregory Szorc authored
I simply did a search for `^.* \(no-py3 !\)\n` and removed all matched lines. There are still some references to no-py3. But these were the simpler ones to match against. Differential Revision: https://phab.mercurial-scm.org/D12253
-
- May 03, 2021
-
-
Pierre-Yves David authored
We want to make the actual location of the datafile and location more of an implementation details than what is is currently. In that process, we make the attribute private. Differential Revision: https://phab.mercurial-scm.org/D10575
-
Pierre-Yves David authored
We want to make the actual location of the indexfile and location more of an implementation details than what is is currently. In that process, we make the attribute private. Differential Revision: https://phab.mercurial-scm.org/D10574
-
- Jan 25, 2021
-
-
Pierre-Yves David authored
This was discussed on the mailing list / phab and `::` got a couple of positive feedback. I dediced to not introduce automatic folding of `::`, I feel like it make sense for `-`, but I like the expliciteness of `::`. So I am adding alias for backward compatibility. Differential Revision: https://phab.mercurial-scm.org/D9872
-
Pierre-Yves David authored
Since we are about to addd ':' in command name I want this covered. Differential Revision: https://phab.mercurial-scm.org/D9871
-
- Dec 04, 2020
-
-
Pierre-Yves David authored
This is the one command namespace where they should not be any ambiguity about command that should be in it. The perf extensions is only adding performance related command. so this is a good ground to start putting dash folding to the tests. Differential Revision: https://phab.mercurial-scm.org/D9516
-
- Jun 04, 2020
-
-
Manuel Jacob authored
The more flexible command was used recently while finding a solution for a buffering bug (eventually fixed in f9734b2d59cc (the changeset description uses a different benchmark)). In comparison to the previous version, the new version is much more flexible. While using it, the focus was on testing small writes. For this reason, by default it calls ui.write() 100 times with a single byte plus one newline byte, for 100 lines. To get the previous behavior, run `hg perfwrite --nlines=100000 --nitems=1 --item='Testing write performance' --batch-line`.
-
- Nov 03, 2019
-
-
Pierre-Yves David authored
Getting more details about time spend in this specific internal bit is meaningful.
-
- Oct 08, 2019
-
-
Pierre-Yves David authored
The new flag benchmark a large amount of `filepath in dirstate` call. This will be useful to compare the Python and Rust implementation of the dirstatemap.
-
Pierre-Yves David authored
This flag benchmark an iteration over all the file in the dirstate. This will be useful to compare the Python and the Rust implementation of the dirstate.
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
- May 23, 2019
-
-
Pierre-Yves David authored
This command gather data that are useful to pick argument for `perfmergecopies`.
-
Pierre-Yves David authored
This command benchmark calls to `mercurial.copies.mergecopies`
-
- May 21, 2019
-
-
Pierre-Yves David authored
Running a perf command with --profile gather data for the whole command execution, including setup and cleanup. This can significantly alter the data. To work around this we introduce a new option, it trigger the profiling of only one iteration of the benchmarked section.
-
Pierre-Yves David authored
sometimes, the initial run is necessary to warm some cache that are not relevant for the current measurement. We add a new `perf.pre-run` option to specify a number of run of the benchmark logic that will happens before measurement are taken.
-
- Apr 05, 2019
-
-
Gregory Szorc authored
We need b'' because perf.py isn't run through the source transformer. We need to cast the exception to bytes using pycompat.bytestr() because ValueError can't be %s formatted due to built-in exceptions lacking __bytes__. We need to pycompat.sysstr() before the float() and int() cast so the ValueError message doesn't have b'' in it. Even with that, it looks like the error message for the ValueError for float casts added quotes, so we need to account for that in test output. Differential Revision: https://phab.mercurial-scm.org/D6200
-
- Mar 26, 2019
-
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D6170
-