Gentoo Archives: gentoo-dev

From: Andrew Savchenko <bircoph@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Portage dependency solving algorithm
Date: Mon, 24 Nov 2014 01:50:36
Message-Id: 20141124045019.58151ff6aa165a5946b5c749@gentoo.org
In Reply to: Re: [gentoo-dev] Portage dependency solving algorithm by Zac Medico
1 Hi,
2
3 On Thu, 20 Nov 2014 20:16:09 -0800 Zac Medico wrote:
4 > > There's currently no switch for this. However, you can use a a command
5 > > like this to see all installed packages that pull in your installed ghc:
6 > >
7 > > emerge -pv --depclean dev-lang/ghc
8 > >
9 > > I've filed a feature request bug for the switch that you have requested:
10 > >
11 > > https://bugs.gentoo.org/show_bug.cgi?id=529988
12 >
13 > I forgot, we have a --verbose-conflicts option already.
14
15 Yeah, that's exactly what I need. Somehow I missed this option,
16 sorry.
17
18 > > From your results, it seems that _select_pkg_highest_available would be
19 > > an obvious thing to optimize. This method already uses memoization, but
20 > > the cache is entirely discarded each time that a package is added to the
21 > > graph. I will see about making it salvage as much cache as possible when
22 > > a package is added.
23 >
24 > I've written a patch, and it gives good results. On one of my computers
25 > with this patch, 'emerge -puvDN @world' takes 15% less time, and results
26 > in 58% fewer _select_pkg_highest_available_imp calls:
27 >
28 > https://bugs.gentoo.org/show_bug.cgi?id=530010
29
30 I've done some profiling with this both patches (from bugs 529660
31 and 530010) applied. See *p530010*.pdf files for both hosts here:
32 ftp://brunestud.info/gentoo/portage-v4.tar.xz
33
34 For performance enhancement I get the following data for
35 normal (that is unprofiled) runs:
36 time calls
37 desktop 13% 62%
38 hitomi 6% 62%
39
40 where time — is % less real time for emerge run and calls stands
41 for % less _select_pkg_highest_available_imp calls.
42
43 While testing --verbose-conflicts I found that if tree contains
44 unresolved conflict, it takes much longer time for emerge to
45 proceed: +36% on desktop and +44% on hitomi.
46
47 Unresolved conflict was created by adding apt-text/dvipdfmx to the
48 @world: it blocks latex-2014 update. (Actually I just reverted one
49 of fixes I made earlier in order to run -DNupv @world without
50 errors .) Looks like emerge tries to build more depgraps to solves
51 this issue. I'm not sure if this may be a subject for optimization.
52 Graps are also present in the tarball in "*@world_with_blocks*.pdf"
53 files.
54
55 And thank your for optimizations! They really give a new breath to
56 my old boxes. Awaiting for them upstream :)
57
58 Best regards,
59 Andrew Savchenko

Replies

Subject Author
Re: [gentoo-dev] Portage dependency solving algorithm Zac Medico <zmedico@g.o>
Re: [gentoo-dev] Portage dependency solving algorithm Alexander Berntsen <bernalex@g.o>