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