Files
git/builtin
Rafael Silva 8e16effe97 blame: remove unnecessary use of get_commit_info()
When `git blame --color-by-age`, the determine_line_heat() is called to
select how to color the output based on the commit's author date.  It
uses the get_commit_info() to parse the information into a `commit_info`
structure, however, this is actually unnecessary because the
determine_line_heat() caller also does the same.

Instead, let's change the determine_line_heat() to take a `commit_info`
structure and remove the internal call to get_commit_info() thus
cleaning up and optimizing the code path.

Enabling Git's trace2 API in order to record the execution time for
every call to determine_line_heat() function:

   + trace2_region_enter("blame", "determine_line_heat", the_repository);
     determine_line_heat(ent, &default_color);
   + trace2_region_enter("blame", "determine_line_heat", the_repository);

Then, running `git blame` for "kernel/fork.c" in linux.git and summing
all the execution time for every call (around 1.3k calls) resulted in
2.6x faster execution (best out 3):

   git built from 328c109303 (The eighth batch, 2021-02-12) = 42ms
   git built from 328c109303 + this change                  = 16ms

Signed-off-by: Rafael Silva <rafaeloliveira.cs@gmail.com>
Reviewed-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-02-17 11:04:17 -08:00
..
2020-09-30 12:53:47 -07:00
2021-01-06 15:10:49 -08:00
2020-07-30 19:18:06 -07:00
2020-08-11 18:04:11 -07:00
2021-01-06 15:10:49 -08:00
2020-10-16 12:30:45 -07:00
2020-07-30 19:18:06 -07:00
2020-11-02 13:17:39 -08:00
2021-01-06 15:10:49 -08:00
2020-03-24 15:04:43 -07:00
2021-01-06 15:10:49 -08:00
2020-08-24 14:54:30 -07:00
2020-04-28 10:47:10 -07:00
2020-03-24 15:04:44 -07:00
2020-05-13 12:19:18 -07:00
2020-10-27 15:09:49 -07:00
2020-07-30 19:18:06 -07:00
2020-09-02 14:39:25 -07:00
2020-11-10 13:46:27 -08:00
2021-01-06 15:10:49 -08:00
2020-04-28 10:47:10 -07:00
2020-07-30 19:18:06 -07:00
2020-08-11 18:04:11 -07:00