From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#23278: 25.0.92; font-lock-ensure is too slow Date: Tue, 12 Apr 2016 22:49:09 +0300 Message-ID: <86inzmy5e2.fsf@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1460490623 22999 80.91.229.3 (12 Apr 2016 19:50:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 12 Apr 2016 19:50:23 +0000 (UTC) To: 23278@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Apr 12 21:50:11 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aq4KA-0002nb-Ay for geb-bug-gnu-emacs@m.gmane.org; Tue, 12 Apr 2016 21:50:10 +0200 Original-Received: from localhost ([::1]:56374 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aq4K8-0004fj-UM for geb-bug-gnu-emacs@m.gmane.org; Tue, 12 Apr 2016 15:50:08 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aq4K5-0004d6-Dt for bug-gnu-emacs@gnu.org; Tue, 12 Apr 2016 15:50:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aq4K2-0002YN-8F for bug-gnu-emacs@gnu.org; Tue, 12 Apr 2016 15:50:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:48966) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aq4K2-0002Y9-5U for bug-gnu-emacs@gnu.org; Tue, 12 Apr 2016 15:50:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1aq4K2-00087E-0a for bug-gnu-emacs@gnu.org; Tue, 12 Apr 2016 15:50:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Apr 2016 19:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 23278 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.146049056831147 (code B ref -1); Tue, 12 Apr 2016 19:50:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 12 Apr 2016 19:49:28 +0000 Original-Received: from localhost ([127.0.0.1]:33070 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aq4JU-00086J-0S for submit@debbugs.gnu.org; Tue, 12 Apr 2016 15:49:28 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:43229) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aq4JS-000867-GL for submit@debbugs.gnu.org; Tue, 12 Apr 2016 15:49:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aq4JM-0002Bv-AB for submit@debbugs.gnu.org; Tue, 12 Apr 2016 15:49:21 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:41638) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aq4JM-0002Br-7N for submit@debbugs.gnu.org; Tue, 12 Apr 2016 15:49:20 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34200) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aq4JI-0003jx-5Y for bug-gnu-emacs@gnu.org; Tue, 12 Apr 2016 15:49:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aq4JF-0002Bg-0i for bug-gnu-emacs@gnu.org; Tue, 12 Apr 2016 15:49:16 -0400 Original-Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]:37276) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aq4JE-0002BZ-Pw for bug-gnu-emacs@gnu.org; Tue, 12 Apr 2016 15:49:12 -0400 Original-Received: by mail-wm0-x22a.google.com with SMTP id n3so41949907wmn.0 for ; Tue, 12 Apr 2016 12:49:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:date:message-id:mime-version; bh=JwqZVQzSQGkX2B92JbYSI0rwsy3h4UfWqIDaELhKPwo=; b=NUSDOFkelCpr0c8+T2EJ3mxz0tmUjKwcr5C4IXXDKqLNnIuhA9rUMdjcJT+1aOtCyA cat6Gz+ayonaNIah60wH3/ZTDSsJ+C6V7ER65b5uHjeFSS1bdVkplVGqHjxb0uk01xCB Wtv4EcuN7iN7niUFQb0kW+UFjne2ZcWIlqOn+5XsLa0qdcuwexasNvPqg+8ImTthpylR QzfrE5rGxsJ8bLV3eJlCGUALTPRFeq0jh0qYSbauSuUYyUxFj+ldyj4WIwFn8sQNNDqL qgCtC9S4wMmoFJ6czC4PhUWjUB3C/lIfrXyYZYQQ7ZQipwSZm26n4wXw/WUBzdzE/qO5 AOGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:subject:date:message-id :mime-version; bh=JwqZVQzSQGkX2B92JbYSI0rwsy3h4UfWqIDaELhKPwo=; b=cWsmPdEKC7V0dgDpIgiQc5x2AyH+lbGaPKV1paansbfGc8S0PVJGtKHLFByOLxqA94 J15QN3AoHejXe5WNIIrhaLGIUfDbKnzNhYmmIOT1RnkliWXXCNgHGYLwdId+j+HrSDDL IQf4QUVXbkf/A5/jSwkPeXfej3cfEJ9esy1QJjVYj0ViIZ7ayHvs9yelCjPuR5Ot9Svg 23/1clBOzKRopDl2TcVQ37AxXzptezZ7TYkgbH++yH3i9d5Q5ykXz724L9QbZ1D6/s6n qNccJb0UBy2DkrEwnDuvGO7nyzJ2NJs19j8W4Vu/yiSG8Rt9ChDR5BlR938zErmDV4U2 GmsQ== X-Gm-Message-State: AOPr4FVZp1HmV5L4n36HNaBS56IJkCa1Yq2BjkKX4njGVf/Xa30hNDhX8bdlIZsrItoFcA== X-Received: by 10.194.235.39 with SMTP id uj7mr5502356wjc.78.1460490552093; Tue, 12 Apr 2016 12:49:12 -0700 (PDT) Original-Received: from axl ([185.105.175.24]) by smtp.gmail.com with ESMTPSA id gl8sm34944463wjb.30.2016.04.12.12.49.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Apr 2016 12:49:11 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:116422 Archived-At: Example: Open xdisp.c, navigate to the first line. Evaluate: (load "jit-lock") (benchmark 1000 '(font-lock-ensure (line-beginning-position) (line-end-position))) => 0.66s Which puts a dampener on the idea of syntax highlighting xref results in the open files. With the patch below, the benchmark executes 100 times faster. OK to apply? diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index 810c220..a582c48 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -387,10 +387,11 @@ jit-lock-fontify-now ;; Fontify chunks beginning at START. The end of a ;; chunk is either `end', or the start of a region ;; before `end' that has already been fontified. - (while (and start (< start end)) - ;; Determine the end of this chunk. - (setq next (or (text-property-any start end 'fontified t) - end)) + (while (and start + (< start + ;; Determine the end of this chunk. + (setq next (or (text-property-any start end 'fontified t) + end)))) ;; Fontify the chunk, and mark it as fontified. ;; We mark it first, to make sure that we don't indefinitely In GNU Emacs 25.0.92.12 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.7) of 2016-04-10 built on axl Repository revision: 20686f7a6430ef37f17b3866f14e7dc3095c1524 Windowing system distributor 'The X.Org Foundation', version 11.0.11702000 System Description: Ubuntu 15.10