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

Re: [PATCH 14/19] [GSOC] cat-file: reuse ref-filter logic

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 12, 2021, 20:38 UTC
Message-ID
<xmqqtukz2rp4.fsf@gitster.g>
In-Reply-To
<CAP8UFD0vHw8cK90RbOUcrAcxNKiHVTMX0VEiK8+MNyHH0CNm4A@mail.gmail.com>
Christian Couder <christian.couder@gmail.com> writes:
Show 8 quoted lines
>> The performance for `git cat-file --batch-all-objects --batch
>> >/dev/null` on the Git repository itself with performance testing
>> tool `time` change from "27.37s user 0.29s system 98% cpu 28.089
>> total" to "33.69s user 1.54s system 87% cpu 40.258 total".
>
> Saying that a later patch will add a fast path which will mitigate the
> performance regression introduced by this patch might help reassure
> reviewers.

More importantly, why is such a fast-path even needed? Isn't it a sign that the ref-filter implementation is eating more cycles than it should for given set of placeholders? Do we know where the extra cycles goes?

I find it somewhat alarming if we are talking about "fast-path" workaround before understanding why we are seeing slowdown in the first place.

Previous: ZheNing HuNext: ZheNing Hu
Message 22 of 52 in “[GSOC] cat-file: reuse ref-filter logic”
  1. 00/19 [GSOC] cat-file: reuse ref-filter logicZheNing Hu via GitGitGadget, Jul 12, 2021
  2. 02/19 cat-file: merge two block into oneZheNing Hu via GitGitGadget, Jul 12, 2021
  3. 01/19 cat-file: handle trivial --batch format with --batch-all-objectsZheNing Hu via GitGitGadget, Jul 12, 2021
  4. 03/19 [GSOC] ref-filter: add obj-type check in grab contentsZheNing Hu via GitGitGadget, Jul 12, 2021
  5. 07/19 [GSOC] ref-filter: add %(rest) atomZheNing Hu via GitGitGadget, Jul 12, 2021
  6. 08/19 [GSOC] ref-filter: pass get_object() return value to their callersZheNing Hu via GitGitGadget, Jul 12, 2021
  7. 06/19 [GSOC] ref-filter: use non-const ref_format in *_atom_parser()ZheNing Hu via GitGitGadget, Jul 12, 2021
  8. 04/19 [GSOC] ref-filter: add %(raw) atomZheNing Hu via GitGitGadget, Jul 12, 2021
  9. 05/19 [GSOC] ref-filter: --format=%(raw) re-support --perlZheNing Hu via GitGitGadget, Jul 12, 2021
  10. 09/19 [GSOC] ref-filter: introduce free_ref_array_item_value() functionZheNing Hu via GitGitGadget, Jul 12, 2021
  11. 11/19 [GSOC] ref-filter: modify the error message and value in get_objectZheNing Hu via GitGitGadget, Jul 12, 2021
  12. 10/19 [GSOC] ref-filter: introduce reject_atom()ZheNing Hu via GitGitGadget, Jul 12, 2021
  13. 12/19 [GSOC] cat-file: add has_object_file() checkZheNing Hu via GitGitGadget, Jul 12, 2021
  14. 13/19 [GSOC] cat-file: change batch_objects parameter nameZheNing Hu via GitGitGadget, Jul 12, 2021
  15. 15/19 [GSOC] cat-file: reuse err buf in batch_object_write()ZheNing Hu via GitGitGadget, Jul 12, 2021
  16. 16/19 [GSOC] cat-file: re-implement --textconv, --filters optionsZheNing Hu via GitGitGadget, Jul 12, 2021
  17. 14/19 [GSOC] cat-file: reuse ref-filter logicZheNing Hu via GitGitGadget, Jul 12, 2021
  18. Christian CouderJul 12, 2021
  19. Christian CouderJul 12, 2021
  20. ZheNing HuJul 12, 2021
  21. ZheNing HuJul 12, 2021
  22. Junio C HamanoJul 12, 2021
  23. ZheNing HuJul 14, 2021
  24. ZheNing HuJul 15, 2021
  25. Christian CouderJul 15, 2021
  26. ZheNing HuJul 15, 2021
  27. ZheNing HuJul 15, 2021
  28. 17/19 [GSOC] ref-filter: remove grab_oid() functionZheNing Hu via GitGitGadget, Jul 12, 2021
  29. 18/19 [GSOC] cat-file: create p1006-cat-file.shZheNing Hu via GitGitGadget, Jul 12, 2021
  30. 19/19 [GSOC] cat-file: use fast path when using default_formatZheNing Hu via GitGitGadget, Jul 12, 2021
  31. Christian CouderJul 12, 2021
  32. ZheNing HuJul 12, 2021
  33. Philip OakleyJul 12, 2021
  34. ZheNing HuJul 12, 2021
  35. 00/17 [GSOC] cat-file: reuse ref-filter logicZheNing Hu via GitGitGadget, Jul 15, 2021
  36. 01/17 [GSOC] ref-filter: add obj-type check in grab contentsZheNing Hu via GitGitGadget, Jul 15, 2021
  37. 02/17 [GSOC] ref-filter: add %(raw) atomZheNing Hu via GitGitGadget, Jul 15, 2021
  38. 03/17 [GSOC] ref-filter: --format=%(raw) re-support --perlZheNing Hu via GitGitGadget, Jul 15, 2021
  39. 04/17 [GSOC] ref-filter: use non-const ref_format in *_atom_parser()ZheNing Hu via GitGitGadget, Jul 15, 2021
  40. 06/17 [GSOC] ref-filter: pass get_object() return value to their callersZheNing Hu via GitGitGadget, Jul 15, 2021
  41. 07/17 [GSOC] ref-filter: introduce free_ref_array_item_value() functionZheNing Hu via GitGitGadget, Jul 15, 2021
  42. 05/17 [GSOC] ref-filter: add %(rest) atomZheNing Hu via GitGitGadget, Jul 15, 2021
  43. 09/17 [GSOC] ref-filter: modify the error message and value in get_objectZheNing Hu via GitGitGadget, Jul 15, 2021
  44. 10/17 [GSOC] cat-file: add has_object_file() checkZheNing Hu via GitGitGadget, Jul 15, 2021
  45. 11/17 [GSOC] cat-file: change batch_objects parameter nameZheNing Hu via GitGitGadget, Jul 15, 2021
  46. 12/17 [GSOC] cat-file: create p1006-cat-file.shZheNing Hu via GitGitGadget, Jul 15, 2021
  47. 08/17 [GSOC] ref-filter: add cat_file_mode to ref_formatZheNing Hu via GitGitGadget, Jul 15, 2021
  48. 15/17 [GSOC] cat-file: re-implement --textconv, --filters optionsZheNing Hu via GitGitGadget, Jul 15, 2021
  49. 14/17 [GSOC] cat-file: reuse err buf in batch_object_write()ZheNing Hu via GitGitGadget, Jul 15, 2021
  50. 13/17 [GSOC] cat-file: reuse ref-filter logicZheNing Hu via GitGitGadget, Jul 15, 2021
  51. 16/17 [GSOC] ref-filter: remove grab_oid() functionZheNing Hu via GitGitGadget, Jul 15, 2021
  52. 17/17 [GSOC] cat-file: use fast path when using default_formatZheNing Hu via GitGitGadget, Jul 15, 2021

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.