1 |
On Fri, 07 Nov 2014 19:54:08 +0100 |
2 |
Matthias Maier <tamiko@g.o> wrote: |
3 |
> Currently, for portage just to decide that nothing has to be done on |
4 |
> my machine takes around 1 minute. |
5 |
|
6 |
Are you running with or without metadata cache? If you're running |
7 |
without, it's going to be slow independently of the resolution |
8 |
algorithm... If you're not: |
9 |
|
10 |
> - Is our dependency model that more complex than the problem |
11 |
> resolvers of other package managers for other distributions solve? |
12 |
|
13 |
Yes, massively so. |
14 |
|
15 |
> - Is it the algorithm that is implemented for the dependency model? |
16 |
|
17 |
Also a contributing factor, for certain cases. You may see Portage doing |
18 |
a lot of backtracking sometimes. There's a much better typical-case |
19 |
algorithm for this. |
20 |
|
21 |
> - Is it its implementation? |
22 |
|
23 |
Also a factor. |
24 |
|
25 |
The main issue, though, is that getting a "good" resolution out of |
26 |
crappy data is extremely difficult. There's the Babbage quote: |
27 |
|
28 |
| On two occasions I have been asked, — "Pray, Mr. Babbage, if you put |
29 |
| into the machine wrong figures, will the right answers come out?" In |
30 |
| one case a member of the Upper, and in the other a member of the |
31 |
| Lower, House put this question. I am not able rightly to apprehend |
32 |
| the kind of confusion of ideas that could provoke such a question. |
33 |
|
34 |
Yet this is *exactly* what a dependency resolver has to do for Gentoo, |
35 |
and it's why dependency resolvers are so complicated. |
36 |
|
37 |
(For comparison, Paludis on Exherbo will run an order of magnitude |
38 |
faster for the same set of installed packages, simply because on |
39 |
Exherbo the input is correct.) |
40 |
|
41 |
> > Well, you're not comparing like with like. Paludis with "everything |
42 |
> > turned off" does more than Portage with "everything turned on". If |
43 |
> > all you're looking for is the wrong answer as fast as possible, |
44 |
> > there are easier ways of getting it... |
45 |
> |
46 |
> The last time I compared the resolver speed of portage and paludis |
47 |
> both needed almost the same time. |
48 |
|
49 |
To do different things, though. Portage doesn't have a "produce a |
50 |
correct resolution" switch. Paludis doesn't (really) have a "produce an |
51 |
illegal resolution" switch. (Again, assuming you have metadata cache. |
52 |
If you don't, whole other story.) |
53 |
|
54 |
-- |
55 |
Ciaran McCreesh |