emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] footnote fontify causing massive slowdown


From: Alan L Tyree
Subject: Re: [O] footnote fontify causing massive slowdown
Date: Sun, 06 Dec 2015 08:40:58 +1100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0

On 05/12/15 23:58, Nicolas Goaziou wrote:
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,

I would be delighted to see the 'plain' footnote format abolished. I use org for writing legal text which often has things like Bank of New South Wales v Laing [1954] AC 135. Rasmus helped me with a patch to ignore these kinds of references, but they remain a nuisance.

Special case, I know, but +1 for getting rid of the things.

Cheers,
Alan

--
Alan L Tyree                    http://www2.austlii.edu.au/~alan
Tel:  04 2748 6206              sip:address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]