D9016: histedit: cache description line

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

D9016: histedit: cache description line

marmoute (Pierre-Yves David)
martinvonz created this revision.
Herald added a reviewer: durin42.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  Navigating the curses-based histedit interface can be pretty slow
  because it redraws everything whenever you make a change.
 
  This patch simply replaces `@property` by `@util.propertycache` on the
  `histeditrule.desc()` function so it's not re-calculated every time
  the screen needs to be re-rendered. I timed it on an example of 30
  simple commits, where I moved the top commit down 25 steps and then up
  25 steps after. Before this patch, that (the whole `hg histedit`
  invocation) took 11.6 s of CPU and after this patch it took 0.8 s).

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D9016

AFFECTED FILES
  hgext/histedit.py

CHANGE DETAILS

diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -1151,7 +1151,7 @@
             h,
         )
 
-    @property
+    @util.propertycache
     def desc(self):
         summary = (
             cmdutil.rendertemplate(



To: martinvonz, durin42, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel