From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#66117: 30.0.50; `find-buffer-visiting' is slow when opening large number of buffers Date: Sun, 08 Oct 2023 12:56:23 +0300 Message-ID: <83y1gdxws8.fsf@gnu.org> References: <878r919qfh.fsf@localhost> <87zg1ewfc2.fsf@localhost> <834jjm749q.fsf@gnu.org> <87cyyawd1a.fsf@localhost> <83pm2a5k85.fsf@gnu.org> <87wmwh2tae.fsf@localhost> <83zg1d468w.fsf@gnu.org> <87bkdr2651.fsf@localhost> <87pm2584oz.fsf@localhost> <83cyy11ln1.fsf@gnu.org> <87lecp84mf.fsf@localhost> <83ttrdx8j9.fsf@gnu.org> <87a5su261p.fsf@localhost> <838r8e24yy.fsf@gnu.org> <87y1gezspg.fsf@localhost> <834jj21z05.fsf@gnu.org> <87il7izo4l.fsf@localhost> <831qe61xrh.fsf@gnu.org> <87cyxqzmhh.fsf@localhost> <83zg0uzlgw.fsf@gnu.org> <87v8bhxzcu.fsf@localhost> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4401"; mail-complaints-to="usenet@ciao.gmane.io" Cc: dmitry@gutov.dev, 66117@debbugs.gnu.org To: Ihor Radchenko Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Oct 08 11:57:53 2023 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 1qpQXp-0000tl-HA for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 08 Oct 2023 11:57:53 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qpQXf-0005CO-Sr; Sun, 08 Oct 2023 05:57:43 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qpQXe-0005C2-Ct for bug-gnu-emacs@gnu.org; Sun, 08 Oct 2023 05:57:42 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qpQXe-00051F-44 for bug-gnu-emacs@gnu.org; Sun, 08 Oct 2023 05:57:42 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qpQXy-0007cM-0M for bug-gnu-emacs@gnu.org; Sun, 08 Oct 2023 05:58:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 08 Oct 2023 09:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66117 X-GNU-PR-Package: emacs Original-Received: via spool by 66117-submit@debbugs.gnu.org id=B66117.169675902629218 (code B ref 66117); Sun, 08 Oct 2023 09:58:01 +0000 Original-Received: (at 66117) by debbugs.gnu.org; 8 Oct 2023 09:57:06 +0000 Original-Received: from localhost ([127.0.0.1]:56268 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qpQX3-0007bB-FR for submit@debbugs.gnu.org; Sun, 08 Oct 2023 05:57:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58500) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qpQX1-0007ac-To for 66117@debbugs.gnu.org; Sun, 08 Oct 2023 05:57:04 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qpQWc-0004RX-4o; Sun, 08 Oct 2023 05:56:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=WpgVELqGYFq0oeTSuIM/6AOC75/uLyUgfNFIDmHg1iQ=; b=qA7n26qdfzSQ YWu8NKiURJqL4lfxaHYJovIZ3LoGdlZ9ouIi+CpCjNTtw3/OABbjTDTWuqusIdRTrR6GjFzrg8o5k RD2lstPhFNBV9gSU4nzqgcfg1xMOkQBH3weqEbOaB3CM07z5EAa0J9UFSpJDL9E4bLTRd4Lczm85W rOsQPC8vJ1AKE97Yfl7LjJowrsE4qychW2zamY9yT4zoFUuzA75n0oB+u4xurUQwGDfdUEUd0nWVq WBdTbZK3MnjqOzuBpBtD0XYiXVkouh3szhdPEbKw/zPJzF9q+M1yihxBShVGAqQx8bqYW3dW6O19q NazkLm5FGj+KPoU6kNPpVg==; In-Reply-To: <87v8bhxzcu.fsf@localhost> (message from Ihor Radchenko on Sun, 08 Oct 2023 09:00:49 +0000) 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:272068 Archived-At: > From: Ihor Radchenko > Cc: dmitry@gutov.dev, 66117@debbugs.gnu.org > Date: Sun, 08 Oct 2023 09:00:49 +0000 > > Eli Zaretskii writes: > > > My advice is to have a prototype working, then time it on local > > filesystems. > > See the attached patch. Thanks. This still has some unnecessary overhead (I actually thought about moving the entire find-buffer-visiting into C, not replacing it with Lisp that calls new primitives). But this already makes find-buffer-visiting take an insignificant portion of CPU time, so I think it proves that the idea is workable: > I left the `file-attributes' call in Elisp. Looking at the > cpu-profiler-w-patch, `find-buffer-visiting' is no longer the main > contributor to CPU time. I am not sure if we really need to squeeze the > performance yet further from `find-buffer-visiting' - `file-attributes' > is taking pretty much no time: > > (reverse call-tree) > 924 36% Automatic GC > 173 6% + inhibit-local-variables-p > 172 6% + locate-dominating-file > 139 5% + abbreviate-file-name > 113 4% + dir-locals--all-files > 109 4% + file-truename > 92 3% + find-buffer-visiting > ... > 6 0% + file-attributes > > comapare with cpu-profiler-without-patch: > > (reverse call-tree) > 1714 39% + find-buffer-visiting > 1131 26% Automatic GC > 202 4% + locate-dominating-file > 147 3% + abbreviate-file-name > 140 3% + inhibit-local-variables-p > 104 2% + dir-locals--all-files > 98 2% + uniquify-rationalize-file-buffer-names > 91 2% + file-truename