From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [RFCv1 0/4] Generating a graph of the size installed by each package
Date: Tue, 24 Jun 2014 18:26:32 +0200 [thread overview]
Message-ID: <20140624162632.GA3478@free.fr> (raw)
In-Reply-To: <53A977B4.70205@lucaceresoli.net>
Luca, All,
On 2014-06-24 15:05 +0200, Luca Ceresoli spake thusly:
> Thomas Petazzoni wrote:
[--SNIP--]
> >To see an example of the generated pie chart, see:
> >
> > http://free-electrons.com/~thomas/pub/buildroot/graph-size.pdf
> >
> >The implementation consists in adding a global instrumentation hook
> >that registers which files are installed by each package. A limitation
> >of the current implementation is that when a file is installed by a
> >package A and then overriden by package B, the mechanism will assume
> >the file was installed by package A. Suggestions to welcome on how to
> >solve this in a reasonably simple way.
>
> It's very well possible that I'm missing something, but I don't get why
> you need to save the list of all installed files.
>
> Can't you just save the whole rootfs size before and after installation?
> It can be simply computer by 'du -bs $(TARGET_DIR)', and it's way
> easier to parse later. It would also take into account the change of
> size for overwritten files, for free.
>
> Of course your approach collects more information, but I don't see
> these extra info used in the final graph.
What is important is not the installed size, but the actual size on the
target.
The binaries installed are not stripped at instll time, but later, just
before making the target images.
Thus, you want to wait for just before generationg the target image, but
just after stripping binaries, to compute the actual size of each
packages.
So, what the patches basically does is:
- record for each package what files are installed
- just after stripping, get the size of each file,
- assign the size to the package that installed that file
Of course, as Thomas says, if two packages install the same file, the
first pacakge will be credited with the size of this file, not the last
package.
Overcoming this would not be trivial (but not impossible either.) This
can be refined in later interations of the patchset; we just need to
come up with a simple-enough heuristic. Storing sha1s of each file
before install, and comparign after install is a solution, but it is a
bit more involved than just diffing the output of 'find -type f'.
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. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2014-06-24 16:26 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-07 21:46 [Buildroot] [RFCv1 0/4] Generating a graph of the size installed by each package Thomas Petazzoni
2014-06-07 21:46 ` [Buildroot] [RFCv1 1/4] toolchain-external: split target installation from staging installation Thomas Petazzoni
2014-06-09 21:49 ` Yann E. MORIN
2014-06-10 8:04 ` Thomas Petazzoni
2014-06-10 16:49 ` Yann E. MORIN
2014-06-07 21:46 ` [Buildroot] [RFCv1 2/4] pkg-generic: add step_pkg_size global instrumentation hook Thomas Petazzoni
2014-06-08 2:56 ` Baruch Siach
2014-06-08 8:19 ` Thomas Petazzoni
2014-06-09 22:02 ` Yann E. MORIN
2014-06-10 16:42 ` Jérôme Pouiller
[not found] ` <3156840.4l9buZIenR@sagittea>
2014-06-10 16:58 ` Yann E. MORIN
2014-06-10 17:37 ` Jérôme Pouiller
2014-06-24 16:36 ` Arnout Vandecappelle
2014-06-24 16:41 ` Thomas Petazzoni
2014-06-24 16:53 ` Yann E. MORIN
2014-06-07 21:46 ` [Buildroot] [RFCv1 3/4] support/scripts: add graph-size script Thomas Petazzoni
2014-06-09 22:06 ` Yann E. MORIN
2014-06-07 21:46 ` [Buildroot] [RFCv1 4/4] Makefile: implement a graph-size target Thomas Petazzoni
2014-06-09 22:28 ` Yann E. MORIN
2014-06-07 21:54 ` [Buildroot] [RFCv1 0/4] Generating a graph of the size installed by each package Will Wagner
2014-06-08 7:42 ` Thomas Petazzoni
2014-06-24 13:05 ` Luca Ceresoli
2014-06-24 16:26 ` Yann E. MORIN [this message]
2014-06-24 16:31 ` Arnout Vandecappelle
2014-06-24 16:42 ` Thomas Petazzoni
2014-06-24 19:54 ` Luca Ceresoli
2014-06-24 20:11 ` 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=20140624162632.GA3478@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