From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ihor Radchenko Newsgroups: gmane.emacs.bugs Subject: bug#64735: 29.0.92; find invocations are ~15x slower because of ignores Date: Thu, 20 Jul 2023 18:57:52 +0000 Message-ID: <87ttty8l73.fsf@localhost> References: <1fd5e3ed-e1c3-5d6e-897f-1d5d55e379fa@gutov.dev> <87wmyupvlw.fsf@localhost> <5c4d9bea-3eb9-b262-138a-4ea0cb203436@gutov.dev> <87tttypp2e.fsf@localhost> <837cqu35lw.fsf@gnu.org> <87o7k6pmk3.fsf@localhost> <834jly351p.fsf@gnu.org> <87lefapkdx.fsf@localhost> <831qh230h5.fsf@gnu.org> <87wmyu8mi0.fsf@localhost> <83wmyu1l1k.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6615"; mail-complaints-to="usenet@ciao.gmane.io" Cc: dmitry@gutov.dev, 64735@debbugs.gnu.org, sbaugh@janestreet.com To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jul 20 20:58:21 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 1qMYqy-0001Uy-VU for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 20 Jul 2023 20:58:21 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qMYqh-0004sq-8x; Thu, 20 Jul 2023 14:58:03 -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 1qMYqg-0004sa-0N for bug-gnu-emacs@gnu.org; Thu, 20 Jul 2023 14:58:02 -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 1qMYqf-0006cY-Ol for bug-gnu-emacs@gnu.org; Thu, 20 Jul 2023 14:58:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qMYqf-0005Y7-KY for bug-gnu-emacs@gnu.org; Thu, 20 Jul 2023 14:58:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Ihor Radchenko Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 20 Jul 2023 18:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64735 X-GNU-PR-Package: emacs Original-Received: via spool by 64735-submit@debbugs.gnu.org id=B64735.168987947121317 (code B ref 64735); Thu, 20 Jul 2023 18:58:01 +0000 Original-Received: (at 64735) by debbugs.gnu.org; 20 Jul 2023 18:57:51 +0000 Original-Received: from localhost ([127.0.0.1]:59905 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qMYqV-0005Xk-Ev for submit@debbugs.gnu.org; Thu, 20 Jul 2023 14:57:51 -0400 Original-Received: from mout01.posteo.de ([185.67.36.65]:47081) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qMYqR-0005XS-4x for 64735@debbugs.gnu.org; Thu, 20 Jul 2023 14:57:49 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 359F1240028 for <64735@debbugs.gnu.org>; Thu, 20 Jul 2023 20:57:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1689879461; bh=lwc38aSJm0wtB/Mnc62i8GtLe7/JMZwJTG3YpzRVRdM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:From; b=AlX61wIzULoJDplBECgtlDqpoggQcvaLD7nOihCTX713WjzOSxFB8nbama740p+Lr XZ+JzbjeshmZEySiEE9Miudzi8oAXsKVpkxKbBfpCOvMfomKACwTE3ayo5bMEWSUSj s4BEit/i2/Tcih4DKkavwws91Sx0kNouwOrIc2WSbVaCf0ruW26v3myn6RfA6gYqDo UycodDkfT7KONyxic/1n6J+Yn4HhciWJCgPSE0Ie+IUJahyiRTLhkpnvanH3Wmp1Oz 04MHsl3O6ewpDjjb4wOb/h/Dzg3sy5FT2ZwSSLQP22anPbamaI+QL0cdzeZVPC6tU/ dFRNb1EYJNPDA== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4R6MPw2shfz6ty3; Thu, 20 Jul 2023 20:57:40 +0200 (CEST) In-Reply-To: <83wmyu1l1k.fsf@gnu.org> 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:265634 Archived-At: Eli Zaretskii writes: >> Disabling `file-name-handler-alist' cuts the time more than 2x. > > Disabling file-handlers is inconceivable in Emacs. Indeed. But we are talking about Emacs find vs. GNU find here. In the scenarios where GNU find can be used, it is also safe to disable file handlers, AFAIU. > ... And I suspect that > find-file-name-handler is mostly called not from directory-files, but > from expand-file-name -- another call that cannot possibly be bypassed > in Emacs, since Emacs behaves as if CWD were different for each > buffer. And expand-file-name also conses file names. And then we > have encoding and decoding file names, something that with Find we do > much less. Etc. etc. expand-file-name indeed calls Ffind_file_name_handler multiple times. And what is worse: (1) `find-lisp-find-files-internal' calls `expand-file-name' on every file in lisp, even when it is already expanded (which it is, for every sub-directory); (2) `directory-files' calls Fexpand_file_name again, on already expanded directory name; (3) `directory-files' calls Ffind_file_name_handler yet again on top of what was already done by Fexpand_file_name; (4) `directory-files' calls `directory_files_internal' that calls `Fdirectory_file_name' that searches `Ffind_file_name_handler' yet one more time. There is a huge amount of repetitive calls to Ffind_file_name_handler going on. They could at least be cached or re-used. I do not see much of encoding and consing present in perf stats. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at