Re: meson documentation build open issues - Mailing list pgsql-hackers

From Andres Freund
Subject Re: meson documentation build open issues
Date
Msg-id 20230320191639.v57hjf32opohgx73@awork3.anarazel.de
Whole thread Raw
In response to Re: meson documentation build open issues  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
Hi,

On 2023-03-19 19:33:38 -0700, Andres Freund wrote:
> I think we can make the docs build in parallel and incrementally, by building
> the different parts of the docs in parallel, using --stringparam rootid,
> e.g. building each 'part' separately.
> 
> A very very rough draft attached:
> 
> parallel with parts:
> real    0m10.831s
> user    0m58.295s
> sys    0m1.402s
> 
> normal:
> real    0m32.215s
> user    0m31.876s
> sys    0m0.328s
> 
> 1/3 of the build time at 2x the cost is nothing to sneeze at.

I could not make myself stop trying to figure out where the big constant time
factor comes from. Every invocation costs about 2s, even if not much is
rendered. Turns out, that's solely spent building all the <xsl:key>s. The
first time *any* key() is invoked for a document, all the keys are computed in
a single pass over the document.

A single reasonable key doesn't take that much time, even for the size of our
docs. But there are several redundant keys being built. Some of them somewhat
expensive. E.g. each
<xsl:key name="genid" match="*" use="generate-id()"/>
takes about 300ms. There's one in chunk-common and one in
docbook-no-doctype.xsl.

I'm going to cry now.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Request for comment on setting binary format output per session
Next
From: "Gregory Stark (as CFM)"
Date:
Subject: Re: pg_stats and range statistics