Hi,
On 2021-10-12 02:08:29 -0700, Andres Freund wrote:
> A very helpful visualization is to transform ninja's build logs into a
> tracefile with https://github.com/nico/ninjatracing
>
> I attached an example - the trace.json.gz can be uploaded as-is to
> https://ui.perfetto.dev/
These days perfetto can load .ninja_log directly without conversion. Attached
is an example of the output. Also attached a local .ninja_log to upload if
somebody wants to look at the interactive output without building.
> It's quite a bit of of fun to look at imo.
>
> There's a few other things quickly apparent:
>
> - genbki prevents build progress due to dependencies on the generated
> headers.
That's still the biggest "slowdown". Only a small number of things can start
before genbki is done. Parts of pgport, bison/flex and parts of the docs
build.
> - the absolutely stupid way I implemented the python2->python3
> regression test output conversion uses up a fair bit of resources
That's gone now.
> - tablecmds.c, pg_dump.c, xlog.c and a few other files are starting to
> big enough to be problematic compile-time wise
But these are still present. When building just the backend, the build speed
is limited by gram.y->gram.c, gram.c -> gram.o, linking postgres.
Greetings,
Andres Freund