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

Re: Profiling support?

From
David Kastrup <dak@gnu.org>
Date
Feb 11, 2014, 20:53 UTC
Message-ID
<87zjlx9xro.fsf@fencepost.gnu.org>
In-Reply-To
<874n45brs4.fsf@fencepost.gnu.org>
David Kastrup <dak@gnu.org> writes:
Show 30 quoted lines
> John Keeping <john@keeping.me.uk> writes:
>
>> On Tue, Feb 11, 2014 at 03:41:55PM +0100, David Kastrup wrote:
>>> Duy Nguyen <pclouds@gmail.com> writes:
>>>
>>> > Would perf help? No changes required, and almost no overhead, I think.
>>> 
>>> Not useful.  It would be probably nice for nailing down the performance
>>> gains when the work is finished so that future regressions will be
>>> noticeable.  It's reasonable easy to create a test case that will take
>>> hours with the current git-blame and would finish in seconds with the
>>> improved one.
>>> 
>>> But it's not useful at all for figuring out the hotspots within the
>>> git-blame binary.
>>
>> I would have thought the annotation described at [1] is exactly what
>> you're looking for, isn't it?
>>
>> Alternatively, I've had some success with callgrind and kCachegrind in
>> the past.
>>
>> [1]
>> https://perf.wiki.kernel.org/index.php/Tutorial#Source_level_analysis_with_perf_annotate
>
> Misunderstanding on my part.  I thought this was about the "make perf"
> Makefile target.  I'll have to take a look at what the perf utility
> does.
>
> Thanks for the clarification.

Looks indeed like it could be useful. In the currently working code from me (last of the complex patch series), significant time is spent in moving and allocating memory. It might make sense not to continue ignoring the patch I proposed to get rid of the absurd realloc series in builtin/blame.c. While it may not be responsible for all of avoidable allocation churn, it's still large and untypical enough to mask further culprits.

-- 
David Kastrup
Previous: David KastrupNext: Thomas Rast
Message 6 of 10 in “Profiling support?”
  1. David KastrupFeb 11, 2014
  2. Duy NguyenFeb 11, 2014
  3. David KastrupFeb 11, 2014
  4. John KeepingFeb 11, 2014
  5. David KastrupFeb 11, 2014
  6. David KastrupFeb 11, 2014
  7. Thomas RastFeb 16, 2014
  8. David KastrupFeb 16, 2014
  9. Thomas RastFeb 16, 2014
  10. David KastrupFeb 16, 2014

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.