Re: FYI, build times for 15.0-RELEASE and 14.4-RELEASE poudriere jail worlds vs. 14.3-RELEASE poudriere jail worlds: an example [timing the 7950X3D doing only the builds done on the WinDevKit2023]

Mark Millard <[email protected]> Sun, 19 Apr 2026 14:50:19 -0700
Newsgroups gmane.os.freebsd.devel.arm,gmane.os.freebsd.stable
Message-ID <[email protected]>
On 4/19/26 07:41, Mark Millard wrote:
> On 4/18/26 17:02, Mark Millard wrote:
>> On 4/18/26 12:26, Mark Millard wrote:
>>> There have been reports of rather large time differences for
>>> 14.4-RELEASE vs. 14.3-RELEASE --as well as prior reports referencing
>>> 14.3-RELEASE  vs. 15.0-RELEASE. This is just a report of from-scratch
>>> building of a particular set of port-packages on a fairly fast machine
>>> (amd64 7950X3D) for each of those.
>>>
>>> Upstream based context installed/used:
>>>
>>> pkgbase GENERIC-NODEBUG main boot kernel
>>> pkgbase debug           main boot world (/etc/malloc.conf -> junk:false)
>>>
>>> pkgbase     15.0-RELEASE poudriere-devel jail world.
>>> ftp-archive 14.4-RELEASE poudriere-devel jail world.
>>> ftp-archive 14.3-RELEASE poudriere-devel jail world.
>>>
>>> (So: None are my builds.)
>>>
>>> # poudriere jail -l
>>> JAILNAME                   VERSION          OSVERSION ARCH  METHOD
>>> TIMESTAMP           PATH
>>> release14p3-amd64          14.3-RELEASE-p10 1403000   amd64 ftp-archive
>>> 2026-04-14 18:00:43 /usr/local/poudriere/jails/release14p3-amd64
>>> . . .
>>> release14-amd64            14.4-RELEASE-p1  1404000   amd64 ftp-archive
>>> 2026-04-14 18:02:42 /usr/local/poudriere/jails/release14-amd64
>>> . . .
>>> release-amd64              15.0-RELEASE-p5  1500068   amd64 pkgbase
>>> 2026-04-17 16:09:49 /usr/local/poudriere/jails/release-amd64
>>> . . .
>>>
>>> ZFS context.

ANother note about my context: the defaults for gcc and llvm are:

lang/gcc15
devel/llvm22

but the 7905X3D also built:

lang/gcc14
devel/llvm19

The port-packages that WinDevKit2023 built did not include lang/gcc14 or
devel/llvm19 .

>>>
>>>
>>> As for the 7950X3D build times:
>>> (maximum ratio: 02:29:18/02:04:06 approx.= 1.2)
>>>
>>> 15.0-RELEASE (run third) took the most time:
>>> (1 less built than for 14.*-RELEASE : 687 vs. 688)
>>>
>>> [02:29:20] [release-amd64-alt] [2026-04-18_08h47m48s] [committing] Time:
>>> 02:29:18
>>>            Queued: 688 Inspected: 0 Ignored: 0 Built: 687 Failed: 1
>>> Skipped: 0 Fetched: 0 Remaining: 0
>>>
>>>
>>> 14.4-RELEASE (run second) took the middle amount of time:
>>>
>>> [02:24:13] [release14-amd64-alt] [2026-04-18_06h23m35s] [committing]
>>> Time: 02:24:11
>>>            Queued: 689 Inspected: 0 Ignored: 0 Built: 688 Failed: 1
>>> Skipped: 0 Fetched: 0 Remaining: 0
> 
> Note: 02:24:11/02:04:05 approx.= 1.16
> Note: max ratio difference: 1.2 - 1.16 = 0.04
> 
>>>
>>>
>>> 14.3-RELEASE (run first) took the least time, by a bigger amount:
>>>
>>> [02:04:06] [release14p3-amd64-alt] [2026-04-17_21h53m02s] [committing]
>>> Time: 02:04:05
>>>            Queued: 689 Inspected: 0 Ignored: 0 Built: 688 Failed: 1
>>> Skipped: 0 Fetched: 0 Remaining: 0
>>>
>>>
>>> So, in the 79050X3D's context, 14.4-RELEASE and 15.0-RELEASE are similar
>>> in how much more time they take than 14.3-RELEASE.
> 
> (Wording above intended as via time ratio comparisons to 14.3.)
> 
> Note: The above 14.4 vs. 15.0 comparison/contrast was not true for the
> WinDevKit20203 (aarch64) of the 3 releases via the ratios, see later
> below. So 15.0 has something rather significant that makes builds take
> more time on the WinDevKit20203 compared to 14.4's ratio.
> 
> (The WinDevKit20203 was tested with a smaller subset of the
> port-packages to be built but still took more than a day to finish the
> sequence of testing 3 poudriere-devel jail releases.)
> 
>>> This suggests that
>>> the biggest difference makers are probably just differences between 14.4
>>> and 14.3 that are also in 15.0, not any extra differences 15.0 may have
>>> vs. 14.3.
> 
> Note: Again, not true for the WinDevKit2023 15.0-RELEASE vs.
> 14.4-RELEASE differences.
> 
>>>
>>> I've never managed to replicate the much larger 14.4 vs. 14.3 time
>>> ratios that have been reported.
> 
> Both platforms were somewhat under 1.25 for the maximum ratio. That is
> much less than one source of build time performance reports that I've seen.
> 
>>>
>>>
>>> For reference:
>>>
>>> # ~/fbsd-based-on-what-commit.sh -C /usr/ports-alt/
>>> b96a271bbc08 (HEAD -> main, freebsd/main, freebsd/HEAD) www/firefox:
>>> update to 150.0 (rc1)
>>> Author:     Christoph Moench-Tegeder <[email protected]>
>>> Commit:     Christoph Moench-Tegeder <[email protected]>
>>> CommitDate: 2026-04-16 17:51:06 +0000
>>> branch: main
>>> merge-base: b96a271bbc0820a058e89001c9ac2309cbf8a60d
>>> merge-base: CommitDate: 2026-04-16 17:51:06 +0000
>>> n742012 (--first-parent --count for merge-base)
>>>
>>> /usr/ports-alt/ is a clean tree.
>>>
>>> My /usr/local/etc/poudriere.d/poudriere.conf is involved and likely unusual.
>>>
>>> 15.0-RELEASE has a newer jemalloc.
>>>
> 
> The below paragraph spans the 3 release tests:
> 
>>> The SWAP space was never put to use. The 1min load average got to be as
>>> high as: 178.27, the 5min: 125.95, the 15min: 76.14 . (Sampled every top
>>> update by a patched top.) There are 16 SMT cores, so 32 FreeBSD cpus.
>>> Implicit 32 builders allowed in parallel.  ALLOW_MAKE_JOBS=yes was in
>>> use but no MAKE_JOBS_NUMBER_LIMIT or the like was in use, so: implicit
>>> 32 per builder allowed. The media in use was (is): PCIe Optane 1.4 TB.
> 
> Note: 192 GiBytes of RAM.
> 
>>>
>>>
>>>
>>> SIDE NOTE:
>>> A different example, aarch64 Windows Dev Kit 2023 context, USB3 media,
>>> UFS, only around 273 port-packages queued/built . . .
> 
> maximum ratio: 09:58:30/08:10:58 approx.= 1.22
> (That was for 15.0-RELEASE)

Later I show use of more significant digits that I did originally.

> 
> But that is a lot more than for 14.4 ratio for WinDevKit2023, unlike
> what was observed for the 7950X3D.
> 
>>>
>>>
>>> 15.0-RELEASE:
>>
>> This was run third and the in-process from-scratch build queued 271 (2
>> less than under 14.*). It will be many hours before there is a final
>> "time" for this.
>>
>>>
>>> UPDATE 15.0-RELEASE NOTES LATER, given how long the WinDevKit2023 builds
>>> take.
> 
> [09:59:09] [release-aarch64-alt] [2026-04-18_15h34m27s] [committing]
> Time: 09:58:30
>            Queued: 271 Inspected: 0 Ignored: 0 Built: 271 Failed: 0
> Skipped: 0 Fetched: 0 Remaining: 0
> 
> This is a lot longer than 14.4 below. So it significantly contributes to
> the maximum ratio vs. 14.3 for the WinDevKit2023 test.
> 
>>>
>>>
>>> 14.4-RELEASE (run first):
>>>
>>> [09:12:00] [release14-aarch64-alt] [2026-04-17_22h10m56s] [committing]
>>> Time: 09:11:36
>>>            Queued: 273 Inspected: 0 Ignored: 0 Built: 273 Failed: 0
>>> Skipped: 0 Fetched: 0 Remaining: 0
> 
> Note: 09:11:36/08:10:58 approx.= 1.12
> Note: max ratio difference: 1.22 - 1.12 = 0.10 (unlike 7950X3D 0.04)
> 
>>>
>>>
>>> 14.3-RELEASE:
>>
>> This was run second.
>>
>>>
>>> UPDATE 14.3-RELEASE NOTES LATER, given how long the WinDevKit2023 builds
>>> take.
>>
>> [08:11:31] [release14p3-aarch64-alt] [2026-04-18_07h22m56s] [committing]
>> Time: 08:10:58
>>            Queued: 273 Inspected: 0 Ignored: 0 Built: 273 Failed: 0
>> Skipped: 0 Fetched: 0 Remaining: 0
>>
>> Note: 09:11:36/08:10:58 approx.= 1.12
> 
> Other notes spanning the 3 release tests:
> 
> 4208Mi was the maximum swap space use observed, there being 32 GiBytes
> of RAM. The 1min load average got to be as high as: 61.29, the 5min:
> 55.65, the 15min: 48.65 . (Sampled every top update by a patched top.)
> There are 8 single-hardware-thread cores, so 8 FreeBSD cpus. Implicit 8
> builders allowed in parallel.  ALLOW_MAKE_JOBS=yes was in use but no
> MAKE_JOBS_NUMBER_LIMIT or the like was in use, so: implicit 8 per
> builder allowed. The media in use was (is): U.2 Optane 1.4 TB via a USB3
> adapter.
> 
> 

In order to make the time ratio comparisons/contrasts more reasonable,
the below is based on the 7950X3D building the same port-packages as the
WinDevKit2023 built:

15.0-RELEASE (built first) build time:

[01:18:43] [release-amd64-alt] [2026-04-19_09h54m55s] [committing] Time:
01:18:41
           Queued: 271 Inspected: 0 Ignored: 0 Built: 271 Failed: 0
Skipped: 0 Fetched: 0 Remaining: 0

15.0 vs. 14.3 time ratio: 01:18:41/01:06:52 approx.= 1.177


14.4-RELEASE (built second) build time:

[01:16:20] [release14-amd64-alt] [2026-04-19_11h13m39s] [committing]
Time: 01:16:18
           Queued: 273 Inspected: 0 Ignored: 0 Built: 273 Failed: 0
Skipped: 0 Fetched: 0 Remaining: 0

14.4 vs. 14.3 time ratio: 01:16:18/01:06:52 approx.= 1.147


14.3-RELEASE (built third) build time:

[01:06:53] [release14p3-amd64-alt] [2026-04-19_12h29m59s] [committing]
Time: 01:06:52
           Queued: 273 Inspected: 0 Ignored: 0 Built: 273 Failed: 0
Skipped: 0 Fetched: 0 Remaining: 0


[Note: overall max observed load averages spanning the 3 7950X3D builds:
1min: 96.84, 5min: 61.24, 15min: 51.75 ]


So, for the comparison/contrast based on the same port-packages being built:

7950X3D       15.0 and 14.4 vs. 14.3 ratios:
15.0: 01:18:41/01:06:52 approx.= 1.177
14.4: 01:16:18/01:06:52 approx.= 1.147
So: 1.177 - 1.147 approx.= 0.030
(so 14.4 is a far bigger ratio increment in the sequence: 0.147)
(sequence: 14.3 -> 14.4 -> 15.0)

WinDevKit2023 15.0 and 14.4 vs. 14.3 ratios:
15.0: 09:58:30/08:10:58 approx.= 1.219
14.4: 09:11:36/08:10:58 approx.= 1.121
1.219 - 1.121 approx.= 0.088
(so 14.4 is a bigger ratio increment in the sequence as well: 0.121)
(sequence: 14.3 -> 14.4 -> 15.0)

In both cases, it looks like focusing on what is different in 14.4 vs.
14.3 that is also different in 15.0 vs. 14.3 would be focusing on the
bigger build-time-taking issues, presuming updating both 15.* and 14.*
for whatever helps.

WITH_LLVM_LINK_STATIC_LIBRARIES could well be involved.


-- 
===
Mark Millard
marklmi at yahoo.com