Gentoo Archives: gentoo-portage-dev

From: Brian <dol-sen@×××××.net>
To: gentoo-portage-dev <gentoo-portage-dev@l.g.o>
Subject: Re: [gentoo-portage-dev] portage-2.0.51_rc1 intermittent slowdowns
Date: Sun, 26 Sep 2004 16:46:31
Message-Id: 1096217229.23854.34.camel@localhost
In Reply to: Re: [gentoo-portage-dev] portage-2.0.51_rc1 intermittent slowdowns by Jason Stubbs
1 On Sat, 2004-09-25 at 20:49, Jason Stubbs wrote:
2
3 > There is a cache format change between 2.0.50 and 2.0.51. The slowdowns are
4 > due to portage doing just-in-time rebuilding of the cache. The first emerge
5 > sync or emerge metadata after an upgrade to portage-2.0.51 will clear it up
6 > altogether.
7 >
8 Yes, that has cleared.
9
10 > Regards,
11 > Jason Stubbs
12 >
13
14 I hace _rc3 installed now. I have found one other area that has taken a
15 performance hit with the new portage
16
17 porthole code fragment:
18
19 def read_db(self):
20 """Read portage's database and store it nicely"""
21 tree = portage.db['/']['porttree']
22 self.get_installed()
23 try:
24 dprint("PORTAGELIB: read_db(); getting allnodes package list")
25 allnodes = tree.getallnodes()
26 dprint("PORTAGELIB: read_db(); Done getting package list")
27 except OSError, e:
28
29
30 [/code]
31
32 The getallnodes() now takes 2 to 8 times longer to complete. It showed
33 up as a very noticeable lag before the data loading progress bar showed
34 any change from 0%. That getallnodes portion of the code was not taken
35 into consideration for the percent calculation before as it was not an
36 time issue. Re-instating some debug staements I was able to pinpoint
37 the lag. The getallnodes portion was about 5 to 15 gtk timeout cycles
38 (about 25-30% of total time) for the thread monitoring function and is
39 now
40 taking 35 to 60 timeout cycles (50-70% of total time).
41
42 Is there perhaps a better way to get this info with the new portage
43 untill the portage API is integrated?
44
45 --
46 Brian <dol-sen@×××××.net>
47
48
49 --
50 gentoo-portage-dev@g.o mailing list