From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#45320: 27.1; diff-refine performance regression Date: Tue, 07 Jun 2022 13:44:51 +0200 Message-ID: <87h74wk898.fsf@gnus.org> References: <87a6ua5i4b.fsf@Rainer.invalid> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11673"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: 45320@debbugs.gnu.org To: Achim Gratz Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jun 07 14:33:00 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nyYOK-0002lM-7h for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 07 Jun 2022 14:33:00 +0200 Original-Received: from localhost ([::1]:57356 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nyYOI-0000mi-J5 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 07 Jun 2022 08:32:58 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43750) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nyXes-0003QF-Fb for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2022 07:46:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:44908) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nyXes-0008OW-4Z for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2022 07:46:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nyXes-0001Oa-1U for bug-gnu-emacs@gnu.org; Tue, 07 Jun 2022 07:46:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 Jun 2022 11:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45320 X-GNU-PR-Package: emacs Original-Received: via spool by 45320-submit@debbugs.gnu.org id=B45320.16546023041562 (code B ref 45320); Tue, 07 Jun 2022 11:46:01 +0000 Original-Received: (at 45320) by debbugs.gnu.org; 7 Jun 2022 11:45:04 +0000 Original-Received: from localhost ([127.0.0.1]:38802 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nyXdw-0000Oi-69 for submit@debbugs.gnu.org; Tue, 07 Jun 2022 07:45:04 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:52366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nyXdu-0000Lf-I5 for 45320@debbugs.gnu.org; Tue, 07 Jun 2022 07:45:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=e7IoLTgZA0vIrEEZtFSbLyImVZ1m+FdN5RHkZC3TUeM=; b=up169ao6qJ2U9hD4URKAUpnKwW n5amEhNjKM0e46oOO0I4Q0+pNYOI0K+a5jyCwZ0bQzdBNawPuFyxu2+ZmRBuBLSkL55o9cUHVCxhR HGDWXLfni0bD/fFEYJlcvmwH8inxKS3FLbKrqrrY8k/o6MPatJcwl6kyborcBkkviX6c=; Original-Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nyXdl-00023C-Kb; Tue, 07 Jun 2022 13:44:56 +0200 X-Now-Playing: Blaine L. Reininger's _Commissions 2 (2)_: "Stellar Violas" In-Reply-To: <87a6ua5i4b.fsf@Rainer.invalid> (Achim Gratz's message of "Sat, 19 Dec 2020 09:12:52 +0100") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:233870 Archived-At: Achim Gratz writes: > *** Hunks are now automatically refined by font-lock. > To disable refinement, set the new user option 'diff-refine' to nil. > To get back the old behavior where hunks are refined as you navigate > through a diff, set 'diff-refine' to the symbol 'navigate'. > > The refinement is run synchronously and can't be interrupted. > > The used algorithm clearly has superlinear complexity with the size of > the diff hunk. I frequently use diff-mode for comparison of log files > from compilations, which routinely creates large hunks and sometimes > very large ones. (I'm going through old bug reports that unfortunately weren't resolved at the time.) This isn't the common use case for showing diffs, so it sounds like you should just alter the 'diff-refine' user option as described above. > Auto-refinement of diff hunks should > > 1. be stopped > > a) after a customizable time threshold (personally I'd be OK with > something like 1s, but other folks may have less patience), > > b) when the user tries to move point (even small delays are annoying > when you really just want to scroll through the file), > > c) when C-g or the corresponding signal is issued. The problem with of these is that font-locking is done from redisplay, and if you `C-g' something from those functions, it'll just try to restart the fontification. But... I guess we could slap something around `diff--font-lock-refined' to change the value (buffer-locally) of diff-refine if the user hits `C-g' while it's running? > 2. not be attempted at all > > a) when the hunk size exceeds a customizable threshold, That should be possible... > b) when the diff in question has run into one of the performance > thresholds multiple times already. I'm not sure that's practical. Anybody have any other ideas here? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no