From: Tom Wijsman <TomWij@gentoo.org>
To: patrick@gentoo.org
Cc: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Portage QOS
Date: Fri, 10 Jan 2014 02:19:03 +0100 [thread overview]
Message-ID: <20140110021903.22d9a77b@TOMWIJ-GENTOO> (raw)
In-Reply-To: <52CF3F59.8010008@gentoo.org>
[-- Attachment #1: Type: text/plain, Size: 3042 bytes --]
On Fri, 10 Jan 2014 08:31:21 +0800
Patrick Lauer <patrick@gentoo.org> wrote:
> On 01/10/2014 08:16 AM, heroxbd@gentoo.org wrote:
> > Igor <lanthruster@gmail.com> writes:
> >
> >> The ebuilds have approximately the same time to install, the
> >> failure rate is about the same, emerge is getting slower.
> >
> > I am curious about the slowness of emerge.
> >
> > How about profile the portage and rewrite the time-crucial part in
> > C/C++, or ideally, borrowing the counterpart from paludis? How
> > feasible is that?
>
> Last I checked paludis wasn't faster - on average portage was a few
> percents faster.
Besides that, a different Python version can also differ; I've found
Python 3.3 to be faster for both emerge and repoman. Maybe PyPy can end
up even being faster than that, but that's another subjective story;
though introducing multiple threads in Portage would be really nice,
but the GIL sits in the way:
https://wiki.python.org/moin/GlobalInterpreterLock
http://doc.pypy.org/en/latest/faq.html#does-pypy-have-a-gil-why
> For python things you really want python or C instead of C++...
Why is this a Python thing? What's the reason to exclude a language?
> So, what you wanted to ask was:
> "Which parts of pkgcore can be migrated into portage?"
Or rather: "What does it take to migrate parts of pkgcore into portage?"
> > I guess the dep-tree calculation is the slowest part.
> Yes, it's doing lots of silly dynamic things (backtracking),
Exactly, without backtracking (which I can live without) it takes
around half a minute as compared to a lot of minutes; when it started
to take almost half an hour it was time to completely nuke backtracking.
Now I happily live without ever needing to enable backtracking again. :)
> and portage codebase on average is not designed for speed.
Yes, inspecting the profiler results has me worried; though I find half
a minute acceptable for the amount of packages that are involved on my
system, so, I'm less concerned but it is still interesting that there
is the possibility to do things faster. It's just some work to actually
get it to do that, which requires much more dedication, time and
knowledge than doing an occasional commit.
> As a first step I would recommend profiling it and removing unneeded
> stuff (do less work!), rewriting parts in C is a lot of work and not
> needed for the first round of speedups.
See my other mail <20140110020218.0f6244d5@TOMWIJ-GENTOO> for recent
profiling images; we should indeed start with dealing with the low
hanging fruit (there are quite some 0-2% speed improvements possible),
as that can get us to speed it up faster than trying to deal with some
algorithmic complexity that needs far more insight to redesign, let
alone to properly re-implement it.
--
With kind regards,
Tom Wijsman (TomWij)
Gentoo Developer
E-mail address : TomWij@gentoo.org
GPG Public Key : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2 ABF0 95B2 1FCD 6D34 E57D
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
next prev parent reply other threads:[~2014-01-10 1:19 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-09 7:24 [gentoo-dev] Portage QOS LTHR
2014-01-09 8:12 ` Alec Warner
2014-01-09 12:44 ` Igor
2014-01-09 14:12 ` Christopher Schwan
2014-01-09 15:26 ` Igor
2014-01-09 15:55 ` Jeroen Roovers
2014-01-09 16:37 ` Igor
2014-01-10 0:27 ` heroxbd
2014-01-10 12:41 ` Igor
2014-01-10 13:51 ` Rich Freeman
2014-01-10 0:16 ` heroxbd
2014-01-10 0:31 ` Patrick Lauer
2014-01-10 1:19 ` Tom Wijsman [this message]
2014-01-10 1:52 ` Patrick McLean
2014-01-10 2:40 ` Tom Wijsman
2014-01-10 6:17 ` Brian Dolbec
2014-01-10 18:14 ` Ciaran McCreesh
2014-01-10 7:54 ` heroxbd
2014-01-10 18:11 ` Ciaran McCreesh
2014-01-11 3:57 ` Patrick Lauer
2014-01-10 1:02 ` Tom Wijsman
2014-01-10 9:10 ` heroxbd
2014-01-10 14:54 ` Tom Wijsman
2014-01-10 12:23 ` Igor
2014-01-10 12:30 ` René Neumann
2014-01-10 12:30 ` Igor
2014-01-10 12:39 ` Patrick Lauer
2014-01-10 13:05 ` Igor
2014-01-10 13:18 ` René Neumann
2014-01-10 18:19 ` Ciaran McCreesh
2014-01-10 19:06 ` René Neumann
2014-01-10 14:05 ` heroxbd
2014-01-12 10:47 ` [gentoo-dev] " Steven J. Long
2014-01-10 13:10 ` [gentoo-dev] " Igor
2014-01-10 14:02 ` Rich Freeman
2014-01-10 15:16 ` Tom Wijsman
2014-01-10 18:12 ` Ciaran McCreesh
2014-01-09 15:49 ` Ben Kohler
2014-01-09 16:11 ` Igor
2014-01-09 17:59 ` [gentoo-dev] " Duncan
2014-01-09 20:42 ` Igor
2014-01-09 21:08 ` Chris Reffett
2014-01-10 12:10 ` Igor
2014-01-10 12:26 ` René Neumann
2014-01-10 12:52 ` Igor
2014-01-10 12:57 ` René Neumann
2014-01-10 15:39 ` Tom Wijsman
2014-01-10 16:36 ` Mike Frysinger
2014-01-10 18:17 ` Greg KH
2014-01-10 19:38 ` Duncan
2014-01-10 22:36 ` heroxbd
2014-01-11 1:28 ` Duncan
2014-01-09 19:35 ` [gentoo-dev] " yac
2014-01-11 15:00 ` Naohiro Aota
2014-01-12 10:28 ` Igor
2014-01-12 19:31 ` Igor
2014-01-12 19:31 ` Igor
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=20140110021903.22d9a77b@TOMWIJ-GENTOO \
--to=tomwij@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
--cc=patrick@gentoo.org \
/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