Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Trent Piepho <tpiepho@impinj.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/2] core/instrumentation: shave minutes off the build time
Date: Mon, 19 Mar 2018 16:30:52 +0000	[thread overview]
Message-ID: <1521477052.10662.140.camel@impinj.com> (raw)
In-Reply-To: <6a793a6dba4f052ca8bbc35edd63df601f46478b.1521146096.git.yann.morin.1998@free.fr>

On Thu, 2018-03-15 at 21:35 +0100, Yann E. MORIN wrote:
> Timings however speak for themselves, with this defconfig (slightly
> biggish-but-still-manageable build) [1].
> 
> host/      20965 files    1.2GiB
> staging/    4715 files    333MiB
> target/     1801 files     44MiB
> 
> All instrumentation steps, using md5:    19min 27s
> All instrumentation steps, using mtime:  14min 45s
> No instrumentation step at all:          14min 31s
> 
> So, using mtime is an almost-5min improvement, i.e. about 25% faster,
> while removing all instrumentation steps does not gain that much more...

After fixing s/L/l/, here are the timings for a 15 minute build:

configure                510.29
build                    166.12
extract                   45.53
other                     43.88
hostinstall               35.43
check_host_rpath          33.37
check_bin_arch            28.30
targetinstall             23.37
stageinstall              15.97
step_pkg_size              9.49

Without ccache, the build step would be somewhat longer.


> Now, we also change the way we handle symlinks. Previously, we would
> hash the file pointed to by the symlink. Now, we only look at the mtime
> of the symlink itself, which still detects modifications.

This patch also fixes a problem the previous system had w.r.t. broken
symlinks.  They did not show up as owned by any packages.  Now they are
owned by the package that creates the link.  It also means a package
that replaced a file which was linked to does not also appear,
incorrectly, to replace all the links as well.

  parent reply	other threads:[~2018-03-19 16:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-15 20:35 [Buildroot] [PATCH 0/2] core/instrumentation: optimisations Yann E. MORIN
2018-03-15 20:35 ` [Buildroot] [PATCH 1/2] core/intrumetnation: don't spawn to get seconds-since-EPOCH Yann E. MORIN
2018-03-17 11:54   ` Cam Hutchison
2018-03-18 16:16     ` Yann E. MORIN
2018-03-19 16:15       ` Trent Piepho
2018-03-15 20:35 ` [Buildroot] [PATCH 2/2] core/instrumentation: shave minutes off the build time Yann E. MORIN
2018-03-18 14:14   ` Peter Korsgaard
2018-03-18 16:15     ` Yann E. MORIN
2018-03-18 16:33       ` Peter Korsgaard
2018-03-22 16:41         ` Thomas De Schampheleire
2018-03-22 16:50           ` Thomas Petazzoni
2018-03-22 17:11             ` Thomas De Schampheleire
2018-03-22 17:25               ` Trent Piepho
2018-03-22 22:39             ` Peter Korsgaard
2018-03-23 22:39           ` Arnout Vandecappelle
2018-03-23 23:03             ` Thomas Petazzoni
2018-03-19 16:30   ` Trent Piepho [this message]
2018-03-19 16:50     ` Thomas Petazzoni
2018-03-19 20:04       ` Peter Korsgaard
2018-03-20 21:47         ` Trent Piepho
2018-03-19 16:53     ` Peter Korsgaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1521477052.10662.140.camel@impinj.com \
    --to=tpiepho@impinj.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox