[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] footnote fontify causing massive slowdown
From: |
Nicolas Goaziou |
Subject: |
Re: [O] footnote fontify causing massive slowdown |
Date: |
Sat, 05 Dec 2015 13:58:16 +0100 |
Hello,
Derek Feichtinger <address@hidden> writes:
> While diagnosing a server condition, I was listing parts of a system log
> via a babel expression. The 130 lines in the babel output are wrapped in
> an example block. This block caused massive slowdown of scrolling and
> other operations.
>
> Using the emacs profiler I see:
>
> - redisplay_internal (C function) 8232 88%
> - jit-lock-function 8226 88%
> - jit-lock-fontify-now 8226 88%
> - funcall 8226 88%
> - #<compiled 0x1cc274f> 8226 88%
> - run-hook-with-args 8226 88%
> - font-lock-fontify-region 8226 88%
> - font-lock-default-fontify-region 8226 88%
> - font-lock-fontify-keywords-region 8226 88%
> - org-activate-footnote-links 8158 87%
> - org-footnote-next-reference-or-definition 8158 87%
> - byte-code 8158 87%
> - org-footnote-at-reference-p 4114 44%
> - org-footnote-in-valid-context-p 4106 44%
> + org-inside-LaTeX-fragment-p 2380 25%
> + org-in-block-p 1563 16%
> + org-in-verbatim-emphasis 159 1%
> org-at-comment-p 4 0%
>
> Checking for footnote pattern matches (org-footnote-re) in the wrapped
> block, I see that
> every line matches based on the very simple and trivial pattern of
> number enclosed in angular brackets, so all the process numbers
> following the "sshd" in these lines like "sshd[1234]" do match and cause load.
>
> #################
> /var/log/secure-20151129:Nov 23 02:25:36 some-host sshd[20089]: Rhosts
> authentication refused for userXYZ: bad ownership or modes for home directory.
> /var/log/secure-20151129:Nov 23 02:25:36 some-host sshd[20089]: Rhosts
> authentication refused for userXYZ: bad ownership or modes for home directory.
> /var/log/secure-20151129:Nov 23 02:25:41 some-host sshd[20089]:
> pam_ldap: error trying to bind as user "xxxxx" (Invalid credentials)
> #################
>
> Since this kind of pattern is so common in logs and 130 lines are really not
> a large number, it makes it hard to use
> org for this purpose. Can this be turned off selectively, or can it be
> prevented in example blocks?
This is a limitation of our current way to fontify a buffer. Changing it
implies some serious work, which I'd rather spend on switching to
syntax-based (instead of regexp-based) fontification.
However, this report raises an interesting question about footnotes:
should we still support plain (e.g., "[1]") footnotes in Org documents?
The pattern is very common an regularly introduces false positives.
Also, IIRC, it was introduced for non-Org buffers (e.g., in Message mode
buffers), to provide some common features with "footnote.el" library.
I think we could remove this kind of footnotes, and yet preserve
`org-footnote-normalize' to change Org footnotes into these ones, for
foreign documents.
WDYT?
Regards,
--
Nicolas Goaziou
- [O] footnote fontify causing massive slowdown, Derek Feichtinger, 2015/12/04
- Re: [O] footnote fontify causing massive slowdown,
Nicolas Goaziou <=
- Re: [O] footnote fontify causing massive slowdown, Alan L Tyree, 2015/12/05
- Re: [O] footnote fontify causing massive slowdown, Rasmus, 2015/12/05
- Re: [O] footnote fontify causing massive slowdown, Samuel Wales, 2015/12/05
- Re: [O] footnote fontify causing massive slowdown, William Denton, 2015/12/05