From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#31888: 27.0.50; Segmentation fault in replace-buffer-contents Date: Fri, 29 Jun 2018 17:07:25 +0300 Message-ID: <83efgpofdu.fsf@gnu.org> References: <39638875-4e85-85dc-1cfa-3bfb7321e6b0@zoho.com> <83602bq8hl.fsf@gnu.org> <83bmc1vjn8.fsf@gnu.org> <877emnm97t.fsf@gmail.com> <83muvisyqv.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1530281172 15085 195.159.176.226 (29 Jun 2018 14:06:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 29 Jun 2018 14:06:12 +0000 (UTC) Cc: Alan Mackenzie , 31888@debbugs.gnu.org, Stefan Monnier , k.michal@zoho.com To: joaotavora@gmail.com Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jun 29 16:06:07 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fYu2H-0003nV-Nc for geb-bug-gnu-emacs@m.gmane.org; Fri, 29 Jun 2018 16:06:05 +0200 Original-Received: from localhost ([::1]:42420 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYu4O-0001wy-S6 for geb-bug-gnu-emacs@m.gmane.org; Fri, 29 Jun 2018 10:08:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48377) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYu4E-0001vI-Mg for bug-gnu-emacs@gnu.org; Fri, 29 Jun 2018 10:08:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fYu4A-0007P2-3J for bug-gnu-emacs@gnu.org; Fri, 29 Jun 2018 10:08:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:60318) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fYu4A-0007Oh-0J for bug-gnu-emacs@gnu.org; Fri, 29 Jun 2018 10:08:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fYu49-0002kh-QY for bug-gnu-emacs@gnu.org; Fri, 29 Jun 2018 10:08:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 29 Jun 2018 14:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31888 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 31888-submit@debbugs.gnu.org id=B31888.153028127610566 (code B ref 31888); Fri, 29 Jun 2018 14:08:01 +0000 Original-Received: (at 31888) by debbugs.gnu.org; 29 Jun 2018 14:07:56 +0000 Original-Received: from localhost ([127.0.0.1]:39982 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fYu44-0002kM-E1 for submit@debbugs.gnu.org; Fri, 29 Jun 2018 10:07:56 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:57274) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fYu42-0002kA-SU for 31888@debbugs.gnu.org; Fri, 29 Jun 2018 10:07:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fYu3t-0006Uz-3O for 31888@debbugs.gnu.org; Fri, 29 Jun 2018 10:07:49 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:41096) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYu3V-0005Y5-UR; Fri, 29 Jun 2018 10:07:21 -0400 Original-Received: from [176.228.60.248] (port=4330 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fYu3U-0005XB-WF; Fri, 29 Jun 2018 10:07:21 -0400 In-reply-to: <83muvisyqv.fsf@gnu.org> (message from Eli Zaretskii on Mon, 25 Jun 2018 17:54:16 +0300) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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:147961 Archived-At: > Date: Mon, 25 Jun 2018 17:54:16 +0300 > From: Eli Zaretskii > Cc: 31888@debbugs.gnu.org, k.michal@zoho.com > > However, I'm working on profiling this command with better > granularity, so maybe I will have additional ideas for speeding it up. As usual, good profiling tools indicate that the problem was in entirely unexpected places. I've now pushed changes that make replace-buffer-contents run between 7 and 10 times faster in the use case that was posted at the beginning of this bug report: it now finishes in 12 to 22 seconds instead of more than 2 minutes. Please see if these changes have any significant effect in your case. One aspect of the changes for which I'd like some feedback (and CC Stefan and Alan) is that the modified code no longer calls the modification hooks for each small insertion or deletion that the optimized replacement script calls; instead, we call the modification hooks just once before the series of changes and once after them. Doing this speeds up the function by a factor of 2, so if we give up that twofold speedup, we should do that only for a very good reason.