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

[GSoC] Git Blog 7

From
ZheNing Hu <adlternative@gmail.com>
Date
Jul 4, 2021, 14:42 UTC
Message-ID
<CAOLTT8R_=8Md3vk5yBK4dggq1RKof_6c1tOEtfchbSmYf+gwtA@mail.gmail.com>

My seventh week blog finished: The web version is here: https://adlternative.github.io/GSOC-Git-Blog-7/

## Week7 Performance Testing 2

This week I used performance flame graph at the suggestion of my mentor `Christian` to find out where my patch affected the performance of `cat-file --batch`. `oid_object_info_extended()` takes the largest proportion of time, accounting for `90.28%` and `41.60%` in `cat-file --batch` and `cat-file --batch-check` respectively. Part of the reason is that `oid_object_info_extended()` is called twice in `get_object()` with my patch. I tried to revise its logic (`WIP`), the performance is improved when without using `--textconv` and `--filters`.

`Ævar Arnfjörð Bjarmason` gave me a good suggestion on performance regression: When we use the default format of `git cat-file --batch-check` or `git cat-file --batch`, we can directly print the meta-data of the object without going through the logic of `ref-filter`; When we use other format, use the logic in ref-filter.

In addition, `Ævar Arnfjörð Bjarmason` also suggests adding a performance test for `git cat-file --batch`, this can help us analyze and compare performance changes later.

There are intensive exams in these two weeks, and sometimes the response may be delayed.

Thanks. -- ZheNing Hu

Next: Christian Couder
Message 1 of 2 in “[GSoC] Git Blog 7”
  1. ZheNing HuJul 4, 2021
  2. Christian CouderJul 5, 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.