Skip to content
Snippets Groups Projects
  1. Feb 22, 2025
  2. Jun 19, 2024
    • Raphaël Gomès's avatar
      revlog: add the glue to use the Rust `InnerRevlog` from Python · 7346f93be7a4
      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.
      7346f93be7a4
  3. Apr 14, 2024
  4. Feb 22, 2024
  5. Jan 08, 2024
  6. Oct 11, 2023
  7. Jun 22, 2023
  8. Jun 23, 2023
  9. Jun 26, 2023
  10. Jun 17, 2023
  11. Jun 01, 2023
  12. Jan 04, 2023
    • Matt Harbison's avatar
      tests: drop `(py3 !)` output matching predicates · 950c39918bd2
      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.
      950c39918bd2
  13. Aug 25, 2022
  14. Jul 28, 2022
  15. Jul 11, 2022
  16. Feb 20, 2022
  17. May 03, 2021
  18. Jan 25, 2021
  19. Dec 04, 2020
  20. Jun 04, 2020
    • Manuel Jacob's avatar
      perf: make `hg perfwrite` more flexible · c2df0bca0dfa
      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`.
      c2df0bca0dfa
  21. Nov 03, 2019
  22. Oct 08, 2019
  23. May 23, 2019
  24. May 21, 2019
    • Pierre-Yves David's avatar
      perf: add an option to profile the benchmark section · 3293086ff663
      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.
      3293086ff663
    • Pierre-Yves David's avatar
      perf: add a `pre-run` option · 563cd9a72682
      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.
      563cd9a72682
  25. Apr 05, 2019
    • Gregory Szorc's avatar
      perf: make perf.run-limits code work with Python 3 · 912d82daeda3
      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
      912d82daeda3
  26. Mar 26, 2019
Loading