[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bug: performance issue in org-font-lock-add-priority-faces related to or
From: |
Tim Frana |
Subject: |
Bug: performance issue in org-font-lock-add-priority-faces related to org-priority-regexp [9.4 (9.4-7-g3eccc5-elpaplus @ /home/standard/.emacs.d/elpa/26.3/develop/org-plus-contrib-20200921/)] |
Date: |
Wed, 7 Oct 2020 23:09:40 +0200 |
Apologies, the extreme slowdown for the regex in my setup is mostly
credited to a very long line in my org file (~100k characters). I
inserted a snippet from a log file to a quote block, without realizing
that a large base64 string was hiding at the end of one line.
The old regex could exclude that line early on, because it wasn't a
header line, so I didn't notice a performance hit back then.
With that line deleted (org file shrinks to ~300KB), I measured
performance with the new and old regex (new on 1st line vs old on 2nd line):
(elp-instrument-function 'org-font-lock-add-priority-faces)
(elp-reset-all)
;; open org file
(elp-results)
Function Name Call Count Elapsed Time Average
Time
new: org-font-lock-add-priority-faces 28 0.0228787000 0.0008170964
old: org-font-lock-add-priority-faces 28 0.0007937999 2.834...e-05
So the new one is still considerably slower, but probably not noticeable
unless the file is really large and/or it contains long lines.
One last remark, my workaround from the last mail is flawed, e.g. it
broke priority sorting in my agendas. This one worked better:
(defun adv--org-font-lock-add-priority-faces (wrapped-func &rest args)
(let ((org-priority-regexp "^\\*+ .*?\\(\\[#\\([A-Z0-9]+\\)\\] ?\\)"))
(apply wrapped-func args)))
(advice-add 'org-font-lock-add-priority-faces :around
#'adv--org-font-lock-add-priority-faces)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Bug: performance issue in org-font-lock-add-priority-faces related to org-priority-regexp [9.4 (9.4-7-g3eccc5-elpaplus @ /home/standard/.emacs.d/elpa/26.3/develop/org-plus-contrib-20200921/)],
Tim Frana <=