Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/context.py @ 27063:37e1fdcb271c
context: optimize _parents()
This patch avoids some extra attribute lookups and list mutations.
This micro-optimization seems to result in a minor speedup for `hg log`
on my Firefox repo:
before: 25.35s
after: 24.91s
delta: -0.44s (98% of original)
Not the biggest gain. But every little bit helps.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 21 Nov 2015 19:04:12 -0800 |
parents | 448cbdab5883 |
children | a29db426c5ba |
comparison
equal
deleted
inserted
replaced
27062:e4f2e4f5e98d | 27063:37e1fdcb271c |
---|---|
509 def _manifestdelta(self): | 509 def _manifestdelta(self): |
510 return self._repo.manifest.readdelta(self._changeset[0]) | 510 return self._repo.manifest.readdelta(self._changeset[0]) |
511 | 511 |
512 @propertycache | 512 @propertycache |
513 def _parents(self): | 513 def _parents(self): |
514 p = self._repo.changelog.parentrevs(self._rev) | 514 repo = self._repo |
515 if p[1] == nullrev: | 515 p1, p2 = repo.changelog.parentrevs(self._rev) |
516 p = p[:-1] | 516 if p2 == nullrev: |
517 return [changectx(self._repo, x) for x in p] | 517 return [changectx(repo, p1)] |
518 return [changectx(repo, p1), changectx(repo, p2)] | |
518 | 519 |
519 def changeset(self): | 520 def changeset(self): |
520 return self._changeset | 521 return self._changeset |
521 def manifestnode(self): | 522 def manifestnode(self): |
522 return self._changeset[0] | 523 return self._changeset[0] |