Mercurial > hg
comparison hgext/histedit.py @ 45450:47d10ade5bc4
histedit: cache description line
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).
Differential Revision: https://phab.mercurial-scm.org/D9016
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 11 Sep 2020 09:35:49 -0700 |
parents | 8c466bcb0879 |
children | 5c8230ca37f2 |
comparison
equal
deleted
inserted
replaced
45449:814c7430f828 | 45450:47d10ade5bc4 |
---|---|
1149 action.ljust(6), | 1149 action.ljust(6), |
1150 r, | 1150 r, |
1151 h, | 1151 h, |
1152 ) | 1152 ) |
1153 | 1153 |
1154 @property | 1154 @util.propertycache |
1155 def desc(self): | 1155 def desc(self): |
1156 summary = ( | 1156 summary = ( |
1157 cmdutil.rendertemplate( | 1157 cmdutil.rendertemplate( |
1158 self.ctx, self.ui.config(b'histedit', b'summary-template') | 1158 self.ctx, self.ui.config(b'histedit', b'summary-template') |
1159 ) | 1159 ) |