threads / discuss / 56047

[GSoC] Git Blog 7

Subject: [GSoC] Git Blog 7

## tl;dr

2 messages between Jul 4, 2021 and Jul 5, 2021.

replies: 1people: 2as markdown or json

ZheNing Hu· Jul 4, 2021, 14:42 UTC · lore

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

Christian Couder· Jul 5, 2021, 19:09 UTC · re: ZheNing Hu · lore

Re: [GSoC] Git Blog 7

On Sun, Jul 4, 2021 at 4:42 PM ZheNing Hu <adlternative@gmail.com> wrote:
>
> My seventh week blog finished:
> The web version is here:
> https://adlternative.github.io/GSOC-Git-Blog-7/
Thanks!
Show 10 quoted lines
> ## 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
s/when without/when not/
Show 15 quoted lines
> `--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.
Ok, no worries!

← back to recent threads