From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tassilo Horn Newsgroups: gmane.emacs.help Subject: Re: Too long completion delay time in LISP interaction mode. Date: Wed, 20 Oct 2021 08:19:02 +0200 Message-ID: <87lf2orz4c.fsf@gnu.org> References: <87tuhcs2ov.fsf@gnu.org> <87pms0s0ex.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="28637"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.7.0; emacs 29.0.50 Cc: help-gnu-emacs@gnu.org To: Hongyi Zhao Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Oct 20 08:27:17 2021 Return-path: Envelope-to: geh-help-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 1md54H-0007IG-BF for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 20 Oct 2021 08:27:17 +0200 Original-Received: from localhost ([::1]:37254 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1md54F-0007KQ-9x for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 20 Oct 2021 02:27:15 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45756) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1md52z-0007J3-Lf for help-gnu-emacs@gnu.org; Wed, 20 Oct 2021 02:25:58 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:54982) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1md52z-00041u-CW; Wed, 20 Oct 2021 02:25:57 -0400 Original-Received: from auth2-smtp.messagingengine.com ([66.111.4.228]:42619) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1md52z-000334-98; Wed, 20 Oct 2021 02:25:57 -0400 Original-Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailauth.nyi.internal (Postfix) with ESMTP id CCAD627C0054; Wed, 20 Oct 2021 02:25:56 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Wed, 20 Oct 2021 02:25:56 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrvddvfedguddtudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpehffgfhvffuffgjkfggtgesthdtredttdertdenucfhrhhomhepvfgrshhs ihhlohcujfhorhhnuceothhsughhsehgnhhurdhorhhgqeenucggtffrrghtthgvrhhnpe evveeikeetkeeviefgfeffiedvteeguddvffeuueduveegtddthedvhfeuveffhfenucev lhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhorhhnod hmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdekieejfeekjeekgedqieefhedv leekqdhtshguhheppehgnhhurdhorhhgsehfrghsthhmrghilhdrfhhm X-ME-Proxy: Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 20 Oct 2021 02:25:56 -0400 (EDT) In-reply-to: X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:133908 Archived-At: Hongyi Zhao writes: >> So the bottleneck is in the lambda which you didn't expand. > > I disabled hotfuzz now, and the following result is obtained by > profiling the CPU with the same steps as described above: > > 472 88% - command-execute > 472 88% - funcall-interactively > 472 88% - counsel-M-x > 472 88% - let > 448 84% - ivy-read > 448 84% - apply > 444 83% + # > 4 0% + my/company--transform-candidates > 24 4% + counsel--M-x-externs > 45 8% + ... > 15 2% + redisplay_internal (C function) Well, again you didn't expand the lambda where most of the time is spent... >> But I'm also not sure if you are profiling the right thing because I >> don't think that in-buffer completion (in terms of >> `completion-at-point-functions') starts with M-x (or counsel-M-x). > > I'm not sure if it's relevant to the following configuration in my > `~/.emacs.d/init.el': I also use corfu but I think now I know what happens. The thing is that doing M-x profiler-report RET takes much longer (88% of the profiling time) than computing the completion candidates. That is done in the 45 8% + ... part which you should also expand. When I do your recipe, the first 54% part is also the M-x profiler-report RET part, and the 327 45% - ... is the actual completion part (using vertico). --8<---------------cut here---------------start------------->8--- 391 54% - command-execute 391 54% - call-interactively 390 53% - byte-code 390 53% - read-extended-command 390 53% - completing-read 390 53% - completing-read-default 390 53% - apply 390 53% - vertico--advice 390 53% - apply 390 53% - # 375 51% - read-from-minibuffer 357 49% + vertico--exhibit 5 0% + command-execute 1 0% + funcall-interactively 327 45% - ... 265 36% - or 265 36% - if 265 36% - let* 260 35% - unwind-protect 260 35% - progn 129 17% + corfu--recompute-candidates 121 16% + let* 10 1% + if 5 0% + if 62 8% Automatic GC 5 0% + timer-event-handler --8<---------------cut here---------------end--------------->8--- HTH, Tassilo