emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
To: Derek Feichtinger <derek.feichtinger@psi.ch>
Cc: emacs-orgmode@gnu.org
Subject: Re: footnote fontify causing massive slowdown
Date: Sat, 05 Dec 2015 13:58:16 +0100	[thread overview]
Message-ID: <87egf1qcgn.fsf@nicolasgoaziou.fr> (raw)
In-Reply-To: <loom.20151204T081351-244@post.gmane.org> (Derek Feichtinger's message of "Fri, 4 Dec 2015 07:15:20 +0000 (UTC)")

Hello,

Derek Feichtinger <derek.feichtinger@psi.ch> 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

  reply	other threads:[~2015-12-05 12:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-04  7:15 footnote fontify causing massive slowdown Derek Feichtinger
2015-12-05 12:58 ` Nicolas Goaziou [this message]
2015-12-05 13:47   ` Aaron Ecay
2015-12-05 15:35     ` Nicolas Goaziou
2015-12-05 15:55       ` Aaron Ecay
2015-12-06  9:41         ` Nicolas Goaziou
2015-12-05 21:40   ` Alan L Tyree
2015-12-05 21:45     ` Matt Lundin
2015-12-05 23:42   ` Rasmus
2015-12-06  0:16   ` Samuel Wales
2015-12-06  0:58   ` William Denton
2015-12-06  1:18     ` Thomas S. Dye
2015-12-06  9:42       ` Nicolas Goaziou
  -- strict thread matches above, loose matches on Subject: below --
2015-12-03  7:17 Derek Feichtinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87egf1qcgn.fsf@nicolasgoaziou.fr \
    --to=mail@nicolasgoaziou.fr \
    --cc=derek.feichtinger@psi.ch \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).