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

Re: Building with PGO: concurrency and test data

From
MCMike Castle <dalgoda@gmail.com>
Date
Apr 21, 2024, 15:45 UTC
Message-ID
<CA+t9iMwX2anANcpPg15MHwdh1377zMb-k9kCt3jVx_-ggJy=sg@mail.gmail.com>
In-Reply-To
<65f32df3f49341bf192b606914d44cc937f7971a.camel@intelfx.name>
On Sat, Apr 20, 2024 at 5:53 PM <intelfx@intelfx.name> wrote:
> I'm trying to build Git with PGO (for a private distribution) and I
> have two questions about the specifics of the profiling process.

Generally speaking, there does not need to be a lot of execution to generate good profiles.

Execute the happy paths and collect data from those. (Which implies that unittests are usually a bad source of profile data.)

Many folks use performance tests to generate profiles because they are already written, but often, they are overkill. Depending on what is going on in the real world, more resources are spent on collecting data than would be saved by the resulting optimizations.

I'd say, don't worry about it, and just go with what is already provided.

For tools like git, each run is short enough that improvements are not likely to be noticed in day-to-day activities. It is still likely to be IO bound. Most perceived performance issues are more likely to be addressed by algorithmic improvements (in general, not just git), rather than feedback profiles.

Now, for any busy long running servers, this can make a bigger difference, particularly for computationally expensive operations like authentication. But again, IO is likely to dominate.

mrc
Previous: intelfx@intelfx.nameNext: Jeff King
Message 2 of 3 in “Building with PGO: concurrency and test data”
  1. intelfx@intelfx.nameApr 21, 2024
  2. Mike CastleApr 21, 2024
  3. Jeff KingApr 23, 2024

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.