git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Rebase performance

From
Duy Nguyen <pclouds@gmail.com>
Date
Feb 25, 2016, 00:50 UTC
Message-ID
<CACsJy8DZOv2Z2hiUmRKHr_GCjsyVz9kQEE8a1F=h6Ku0Dr9g_w@mail.gmail.com>
In-Reply-To
<CAP8UFD0p1kvk2B0kkc-M9dm+H-Bmam=OrE99VwQx=KCETFEjcw@mail.gmail.com>

On Thu, Feb 25, 2016 at 5:09 AM, Christian Couder <christian.couder@gmail.com> wrote:

Show 7 quoted lines
> Another possibility would be to libify the "git apply" functionality
> and then to use the libified "git apply" in run_apply() instead of
> launching a separate "git apply" process. One benefit from this is
> that we could probably get rid of the read_cache_from() call at the
> end of run_apply() and this would likely further speed up things. Also
> avoiding to launch separate processes might be a win especially on
> Windows.

The amount of global variables in apply.c is just scary. Libification will need some cleanup first (i'm not against it though). Out of curiosity, how long does it take to do "git update-index <one modified path>" on this repo? That would cover read_cache_from() and write_cache(). While you're measuring, maybe sprinkle some trace_performance() in apply.c:apply_patch() to get an idea where time is most spent in? This is a big guess, but if we spend more time parsing/validating the patch than applying, then that part could be parallelized, we only need to apply patches in sequence.

-- 
Duy
Previous: Stefan BellerNext: Junio C Hamano
Message 4 of 13 in “Rebase performance”
  1. Christian CouderFeb 24, 2016
  2. Jacob KellerFeb 25, 2016
  3. Stefan BellerFeb 25, 2016
  4. Duy NguyenFeb 25, 2016
  5. Junio C HamanoFeb 25, 2016
  6. Duy NguyenFeb 25, 2016
  7. Duy NguyenFeb 25, 2016
  8. Christian CouderFeb 26, 2016
  9. Ævar Arnfjörð BjarmasonFeb 25, 2016
  10. Matthieu MoyFeb 25, 2016
  11. Johannes SchindelinFeb 26, 2016
  12. Stefan BellerFeb 26, 2016
  13. Christian CouderMar 2, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.