From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/2] Add BR2_CMAKE_USE_NINJA_BACKEND option
Date: Wed, 1 Feb 2017 21:12:32 +0100 [thread overview]
Message-ID: <20170201211232.2f4effde@free-electrons.com> (raw)
In-Reply-To: <1422fd7b4aadc4c1efbec44cf687740c@openmailbox.org>
Hello,
On Wed, 01 Feb 2017 18:01:31 +0100, C?dric Marie wrote:
> You're right, it is a private package, that's why I had to test on other
> packages I'm not particularly using, to demonstrate.
>
> The benefit is rather small for my package too.
>
> Make:
> real 1m1.517s
> user 2m23.996s
> sys 0m36.197s
>
> Ninja:
> real 0m56.312s
> user 2m19.078s
> sys 0m29.119s
Indeed the benefit is quite small here.
> NB: It includes the whole "time make foo-rebuild" command, because time
> output is "strange" when inserted in pkg-cmake.mk (... time
> $$($$(PKG)_MAKE) ...), don't know why...
> Looks like:
> 130.50user 19.88system 0:42.32elapsed 355%CPU (0avgtext+0avgdata
> 24680maxresident)k
> 0inputs+50416outputs (0major+7602195minor)pagefaults 0swaps
In the first case you're using the shell built-in "time" program, in
the later you're using the separate /usr/bin/time program. Try:
/usr/bin/time make foo-rebuild
> To be honest, when I started to add ninja possibility, I expected much
> bigger savings :)
> Yet I have the option, so even if the benefit is small, I keep using it.
>
> But in the end, I don't know whether it's worth pushing upstream or
> not...
I'm indeed not sure it's really worth the effort for such a small
saving.
> Besides Buildroot, I also switched another package from CMake/Make to
> Meson (based on Ninja), and the benefit was much more interesting -
> although I have not kept any measure to give here.
> I expected the improvement to be caused by Ninja, not Meson. But it
> seems that Meson makes the difference, rather than Make vs Ninja.
We had some contribution some months ago to add support for Meson in
Buildroot. The problem was that the contribution was only composed of
host packages, not used by any target package in Buildroot itself.
Which means it was only adding dead code, that wasn't used at all by
Buildroot unless you have some in-house package that uses Meson.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2017-02-01 20:12 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-06 22:37 [Buildroot] [PATCH 1/2] Add BR2_CMAKE_USE_NINJA_BACKEND option Cédric Marie
2017-01-06 22:37 ` [Buildroot] [PATCH 2/2] Update documentation of CMake infrastructure Cédric Marie
2017-01-25 3:27 ` Thomas Petazzoni
2017-01-21 22:25 ` [Buildroot] [PATCH 1/2] Add BR2_CMAKE_USE_NINJA_BACKEND option Romain Naour
2017-01-23 13:39 ` Cédric Marie
2017-01-24 21:48 ` Romain Naour
2017-01-25 1:27 ` Thomas Petazzoni
2017-01-26 17:27 ` Cédric Marie
2017-01-30 9:23 ` Thomas Petazzoni
2017-02-01 17:01 ` Cédric Marie
2017-02-01 20:12 ` Thomas Petazzoni [this message]
2017-02-03 10:44 ` Cédric Marie
2017-01-25 1:37 ` Thomas Petazzoni
2017-07-11 11:56 ` Thomas Petazzoni
2017-07-11 13:25 ` Cédric Marie
2017-07-11 13:35 ` Thomas Petazzoni
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=20170201211232.2f4effde@free-electrons.com \
--to=thomas.petazzoni@free-electrons.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