Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 06/13] docs/manual: add section about build time graphing
Date: Sun, 23 Feb 2014 16:35:47 +0100	[thread overview]
Message-ID: <20140223153547.GH3342@free.fr> (raw)
In-Reply-To: <1393167879-16637-7-git-send-email-thomas.petazzoni@free-electrons.com>

Thomas, All,

On 2014-02-23 16:04 +0100, Thomas Petazzoni spake thusly:
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  docs/manual/common-usage.txt | 47 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
> 
> diff --git a/docs/manual/common-usage.txt b/docs/manual/common-usage.txt
> index bef42c6..76e4023 100644
> --- a/docs/manual/common-usage.txt
> +++ b/docs/manual/common-usage.txt
> @@ -201,3 +201,50 @@ supported.
>  --------------------------------
>  GRAPH_OUT=svg make graph-depends
>  --------------------------------
> +
> +Graphing the build duration
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +[[graph-duration]]
> +
> +When the build of a system takes a long time, it is sometimes useful
> +to be able to understand which packages are the longest to build, to
> +see if anything can be done to speed up the build. In order to help
> +such build time analysis, Buildroot collects the build time of each
> +step of each package, and allows to generate graphs from these data.
> +
> +To generate the build time graph after a build, run:
> +
> +----------------
> +make graph-build
> +----------------
> +
> +This will generate a set of files in +output/graphs+ :
> +
> +* +build.hist-build.pdf+, an histogram of the build time for each
> +  package, ordered in the build order.
> +
> +* +build.hist-duration.pdf+, an histogram of the build time for each
> +  package, ordered by duration (longest first)
> +
> +* +build.hist-name.pdf+, an histogram of the build time for each
> +  package, order by package name.
> +
> +* +build.pie-packages.pdf+, a pie chart of the build time per package
> +
> +* +build.pie-steps.pdf+, a pie chart of the global time spent in each
> +  step of the packages build process.
> +
> +This +graph-build+ target requires the Python Matplotlib and Numpy
> +libraries to be installed (+python-matplotlib+ and +python-numpy+ on
> +most distributions), and also the +argparse+ module if you're using a
> +Python version older than 2.7 (+python-argparse+ on most
> +distributions).
> +
> +By default, the output format for the graph is PDF, but a different
> +format can be selected using the +GRAPH_OUT+ environment variable. The
> +only other format supported is PNG:
> +
> +----------------
> +GRAPH_OUT=png make graph-build
> +----------------

We also have GRAPH_ALT which sets an alternative colour-scheme for the
time graphs:
    GRAPH_ALT=y make graph-build

Which can be combined with GRAPH_OUT, of course.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2014-02-23 15:35 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-23 15:04 [Buildroot] [PATCH 00/13] Documentation updates and improvements Thomas Petazzoni
2014-02-23 15:04 ` [Buildroot] [PATCH 01/13] docs/manual: toolchain packages no longer use custom makefiles Thomas Petazzoni
2014-02-23 15:16   ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 02/13] docs/manual: rephrase part about rebuilding packages Thomas Petazzoni
2014-02-23 15:19   ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 03/13] docs/manual: rephrase and expand part on when a full rebuild is necessary Thomas Petazzoni
2014-02-23 15:24   ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 04/13] docs/manual: reference Python and Lua infras from the list of package infrastructures Thomas Petazzoni
2014-02-23 15:29   ` Yann E. MORIN
2014-02-23 15:37     ` Thomas Petazzoni
2014-02-23 15:04 ` [Buildroot] [PATCH 05/13] docs/manual: add section about dependency graphs Thomas Petazzoni
2014-02-23 15:32   ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 06/13] docs/manual: add section about build time graphing Thomas Petazzoni
2014-02-23 15:35   ` Yann E. MORIN [this message]
2014-02-23 15:04 ` [Buildroot] [PATCH 07/13] docs/manual: update informations about C library in internal backend Thomas Petazzoni
2014-02-23 16:21   ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 08/13] docs/manual: update external toolchain examples Thomas Petazzoni
2014-02-23 15:39   ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 09/13] docs/manual: mention that custom toolchains is also useful for BR toolchains Thomas Petazzoni
2014-02-23 15:48   ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 10/13] docs/manual: rephrase paragraph about unsupported external toolchains Thomas Petazzoni
2014-02-23 15:04 ` [Buildroot] [PATCH 11/13] docs/manual: refresh informations about *-menuconfig targets Thomas Petazzoni
2014-02-23 15:53   ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 12/13] docs/manual: document the usage of <pkg>_OVERRIDE_SRCDIR Thomas Petazzoni
2014-02-23 16:29   ` Yann E. MORIN
2014-02-23 21:29     ` Peter Korsgaard
2014-02-23 21:33       ` Yann E. MORIN
2014-02-23 15:04 ` [Buildroot] [PATCH 13/13] docs/manual: mention the per-package graph-depends target Thomas Petazzoni
2014-02-23 16:06   ` Yann E. MORIN
2014-02-23 21:30 ` [Buildroot] [PATCH 00/13] Documentation updates and improvements 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=20140223153547.GH3342@free.fr \
    --to=yann.morin.1998@free.fr \
    --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