1 |
On 06/16/2013 11:23 AM, Tom Wijsman wrote: |
2 |
> Ignoring that call graph, you could look at what has recently been |
3 |
> introduced to increase the amount of time needed to calculate the |
4 |
> dependency graph; you don't have to look far. |
5 |
> |
6 |
> http://blogs.gentoo.org/mgorny/2013/05/27/the-pointless-art-of-subslots/ |
7 |
> |
8 |
> While I don't want point out the contents of that blog post, the title |
9 |
> is relevant; implementing features like subslots on an algorithm that |
10 |
> was not written with subslots in mind introduces a lot of inefficiency. |
11 |
|
12 |
It's actually not bad, since all of the subslot rebuilds are triggered |
13 |
in a single backtracking run. Anyway, I welcome having people work on |
14 |
competing package managers, trying to do all of this stuff more |
15 |
efficiently. :-) |
16 |
|
17 |
> And it's not just subslots, newer features keep getting added to the |
18 |
> dependency graph calculation and it gets slower and slower over time. |
19 |
> It feels like revdep-rebuild moved into the dependency calculation! |
20 |
|
21 |
I guess the main things that make it slower than it has been |
22 |
historically would be things like --autounmask, --backtrack, |
23 |
--complete-graph-if-new-use and --complete-graph-if-new-ver. Note that |
24 |
you can use EMERGE_DEFAULT_OPTS to disable these things if you would |
25 |
prefer to live without them. You might use something like --backtrack=2 |
26 |
if you want it to bail out early for all but the simplest backtracking |
27 |
cases. Use --ignore-built-slot-operator-deps=y if you want to disable |
28 |
all rebuilds involving subslots and slot-operators. |
29 |
-- |
30 |
Thanks, |
31 |
Zac |