1 |
Ciaran McCreesh wrote: |
2 |
> On Tue, 10 Jun 2008 19:40:22 +0530 |
3 |
> "Arun Raghavan" <arunisgod@×××××.com> wrote: |
4 |
>> On Tue, Jun 10, 2008 at 7:32 PM, Ciaran McCreesh |
5 |
>> <ciaran.mccreesh@××××××××××.com> wrote: |
6 |
>> [...] |
7 |
>>>> I don't think that filename-vs-first-line is going to make a big |
8 |
>>>> difference in practical performance. |
9 |
>>> It's about a factor of five difference in cold-cache resolution |
10 |
>>> performance for Paludis. |
11 |
>> Could you please share more details on the experiment that showed this |
12 |
>> kind of performance degradation and the numbers, if possible? |
13 |
> |
14 |
> Shove an open and a getline in when doing what would otherwise be a |
15 |
> successful cache read. It adds a couple of thousand new open()s on |
16 |
> files that would otherwise be left alone, and changes the nice linear |
17 |
> "slurp up things in this directory in order until we don't need |
18 |
> anything else" pattern into "bounce backwards and forwards between lots |
19 |
> of files in two different directories". |
20 |
> |
21 |
> On a cold cache, which is the most common use case, this is very very |
22 |
> nasty. |
23 |
> |
24 |
|
25 |
I'm curious as to what operation in particular we're looking at. Let's |
26 |
say I type in "paludis --sync": |
27 |
|
28 |
Obviously the first step is to rsync the portage tree. Then we find all |
29 |
modified files (already output by rsync) and update the caches. We |
30 |
already need to fully parse every file to create a dependency tree, so |
31 |
why is it slow to cache the EAPI for each file while we're at it? |
32 |
|
33 |
Next, suppose I type in "paludis -pi world": |
34 |
|
35 |
Why wouldn't everything you need not already be in the cache? And if |
36 |
something wasn't, then why is reading in the EAPI any slower than |
37 |
reading in (R)DEPEND/KEYWORDS/IUSE/etc? |
38 |
|
39 |
What specific operation (from an end-user perspective) is improved by |
40 |
putting EAPI in the filename? I'm not interested in theoretical |
41 |
operations like "given a portage tree, find the EAPI of every file" - |
42 |
users don't do those operations routinely in isolation, but as part of |
43 |
larger operations where doing an open and a getline now just speeds up |
44 |
the open and getline that would be executed 500 lines later anyway. |
45 |
|
46 |
Again, I'm not completely opposed to the idea of putting EAPI in the |
47 |
filename, but I'm not convinced that the arguments in favor of it are as |
48 |
clear-cut as some are suggesting. If everybody was open about the |
49 |
pros/cons of each solution and not suggesting that one solution is |
50 |
near-perfect and the others are total non-starters then this whole |
51 |
debate would probably be a whole lot less contentious. When people |
52 |
perceive that somebody isn't honest about the shortcomings of their own |
53 |
proposal then they're less likely to trust them - it is just a human |
54 |
thing... |
55 |
-- |
56 |
gentoo-dev@l.g.o mailing list |