summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarat Radchenko <marat@slonopotamus.org>2011-05-20 08:25:17 +0400
committerZac Medico <zmedico@gentoo.org>2011-05-25 20:27:49 -0700
commitc8f48112ca556b872851bb2a5f30695865db0093 (patch)
tree3f2b3eaa7d1970e0b3e95dce7d89659401fce798
parent04e7e152a1398c4d35d30fe1a4fb285b594dbc81 (diff)
downloadportage-c8f48112ca556b872851bb2a5f30695865db0093.tar.gz
portage-c8f48112ca556b872851bb2a5f30695865db0093.tar.bz2
portage-c8f48112ca556b872851bb2a5f30695865db0093.zip
Package: precalculate _hash_key
This eliminates an expensive getattr call in _get_hash_key(), which greatly improves depgraph performance on a weak ARM cpu.
-rw-r--r--pym/_emerge/Package.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py
index f11da6ee5..d7efbf2ae 100644
--- a/pym/_emerge/Package.py
+++ b/pym/_emerge/Package.py
@@ -73,6 +73,9 @@ class Package(Task):
else:
self.operation = "merge"
+ self._hash_key = \
+ (self.type_name, self.root, self.cpv, self.operation)
+
def _validate_deps(self):
"""
Validate deps. This does not trigger USE calculation since that
@@ -405,10 +408,6 @@ class Package(Task):
return missing_iuse
def _get_hash_key(self):
- hash_key = getattr(self, "_hash_key", None)
- if hash_key is None:
- self._hash_key = \
- (self.type_name, self.root, self.cpv, self.operation)
return self._hash_key
def __lt__(self, other):