Subject: Re: [RFC] building postgres with meson

From: Andres Freund <[email-masked]>
Date: Wed, 9 Mar 2022 09:13:14 -0800

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