Hi!
Attached patch improves performance for empty PRCO lists
(YumAvailablePackageSqlite.returnPRCO). For a big update (170 pkgs) it saves
27% of the time.
Florian
Index: yum/packages.py
===================================================================
RCS file: /cvsroot/yum/cvs/yum/yum/packages.py,v
retrieving revision 1.101
diff -u -r1.101 packages.py
--- yum/packages.py 25 Apr 2007 20:19:19 -0000 1.101
+++ yum/packages.py 27 Apr 2007 10:03:53 -0000
@@ -235,7 +235,7 @@
if not self.prco.has_key(prcotype):
return 0
# exact match
- if prcotuple in self.prco[prcotype]:
+ if self.prco[prcotype] and prcotuple in self.prco[prcotype]:
return 1
else:
# make us look it up and compare
Index: yum/sqlitesack.py
===================================================================
RCS file: /cvsroot/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.97
diff -u -r1.97 sqlitesack.py
--- yum/sqlitesack.py 25 Apr 2007 18:28:31 -0000 1.97
+++ yum/sqlitesack.py 27 Apr 2007 10:03:54 -0000
@@ -36,10 +36,10 @@
class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
def __init__(self, repo, db_obj):
self._checksums = []
- self.prco = { 'obsoletes': [],
- 'conflicts': [],
- 'requires': [],
- 'provides': [] }
+ self.prco = { 'obsoletes': None,
+ 'conflicts': None,
+ 'requires': None,
+ 'provides': None }
self._files = {}
self.sack = repo.sack
self.repoid = repo.id
@@ -176,7 +176,8 @@
return RpmBase.returnFileTypes(self)
def returnPrco(self, prcotype, printable=False):
- if not self.prco[prcotype]:
+ if self.prco[prcotype] is None:
+ self.prco[prcotype] = [ ]
cache = self.sack.primarydb[self.repo]
cur = cache.cursor()
query = "select %s.name as name, %s.version as version, "\
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel