From: Greg Turner <gmt@malth.us>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Re: Is || ( Atom... ) broken?
Date: Wed, 9 Jul 2014 02:52:31 -0700 [thread overview]
Message-ID: <CA+VB3NTw2WJutskUL+Wtuz-p=79KQ_zOixA9Sd5R1G5EtC4_8w@mail.gmail.com> (raw)
In-Reply-To: <pan$6a4d3$9c06962a$a3927b91$682d3596@cox.net>
On Mon, Jul 7, 2014 at 9:39 PM, Duncan <1i5t5.duncan@cox.net> wrote:
> But from the sound of things, default backtrack=10, multilib, full
> @system set and default profile use, on spinning rust, is getting all but
> intolerable now. =:^(
Actually a mix of RAID0 and RAID1 over fast, new-ish SSDs -- anyhow I
doubt it would matter on spinning rust. When I sync, I run egencache
on everything and then emerge --metadata, so by the time I run emerge
-u*, it's against a warm cache; the disk light basically stays dark
the whole time. But, I have overlays with forced eclass overrides,
and over 2000 packages installed. Furthermore, after a sync, I'm
often waiting for emerge to fail, not to succeed.
For example, say I've multilibutized something upstream hasn't, and
upstream has version-bumped their non-multilibutized ebuild (but not
multilibutized it); and say I have packages installed requiring
multilib in the same slot -- that's a scenario I frequently find
myself in. Worse, I will usually provide --complete-graph to portage
(because otherwise, portage can fail to show me the clues I need to
detect precisely this problem). Basically, you could say my use case
is the perfect storm of ways to make emerge slow. I probably wouldn't
be kept waiting for those 30 minutes unless I'd waited a week or two,
and let gx86 provide newer versions of several of my ebuilds. I'm
pretty sure this triggers massive amounts of backtracking.
By the way, I've profiled depsolving on my system. Portage spends a
/majority/ of it's depsolving time solving regexes on behalf of
portage.dep.Atom. I have an untested theory that, without fixing any
algorithmic stuff, we could reap a meaningful O(1) gain implementing,
say, a CustomAtom (inherited by Atom) in cpython that does most of its
string parsing in hand-coded C.
-gmt
next prev parent reply other threads:[~2014-07-09 9:52 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-07 10:14 [gentoo-dev] Is || ( Atom... ) broken? Greg Turner
2014-07-07 11:02 ` [gentoo-dev] " Duncan
2014-07-07 13:06 ` Greg Turner
2014-07-07 11:14 ` [gentoo-dev] " Rich Freeman
2014-07-07 12:45 ` James Potts
2014-07-07 13:07 ` Kent Fredric
2014-07-07 23:42 ` Greg Turner
2014-07-08 4:39 ` [gentoo-dev] " Duncan
2014-07-08 5:42 ` Kent Fredric
2014-07-09 9:52 ` Greg Turner [this message]
2014-07-09 12:34 ` Duncan
2014-07-09 18:26 ` Greg Turner
2014-07-07 13:09 ` [gentoo-dev] " Samuli Suominen
2014-07-07 15:54 ` Ciaran McCreesh
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='CA+VB3NTw2WJutskUL+Wtuz-p=79KQ_zOixA9Sd5R1G5EtC4_8w@mail.gmail.com' \
--to=gmt@malth.us \
--cc=gentoo-dev@lists.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