From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: footnote fontify causing massive slowdown Date: Sat, 05 Dec 2015 13:58:16 +0100 Message-ID: <87egf1qcgn.fsf@nicolasgoaziou.fr> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51079) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5CO7-0003ZG-Pe for emacs-orgmode@gnu.org; Sat, 05 Dec 2015 07:56:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a5CO2-000401-Pj for emacs-orgmode@gnu.org; Sat, 05 Dec 2015 07:56:31 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:36338) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5CO2-0003zT-JQ for emacs-orgmode@gnu.org; Sat, 05 Dec 2015 07:56:26 -0500 In-Reply-To: (Derek Feichtinger's message of "Fri, 4 Dec 2015 07:15:20 +0000 (UTC)") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Derek Feichtinger Cc: emacs-orgmode@gnu.org Hello, Derek Feichtinger 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% > - # 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