diff options
author | Marat Radchenko <marat@slonopotamus.org> | 2011-05-20 08:25:17 +0400 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-05-25 20:27:49 -0700 |
commit | c8f48112ca556b872851bb2a5f30695865db0093 (patch) | |
tree | 3f2b3eaa7d1970e0b3e95dce7d89659401fce798 | |
parent | 04e7e152a1398c4d35d30fe1a4fb285b594dbc81 (diff) | |
download | portage-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.py | 7 |
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): |