From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#49264: 28.0.50; project.el+tramp performance issue Date: Tue, 29 Jun 2021 16:00:02 +0300 Message-ID: <72c1b336-ae02-36c0-db40-f608bafecdf3@yandex.ru> References: <87fsx13aiz.fsf.ref@aol.com> <87fsx13aiz.fsf@aol.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27537"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 To: Ergus , 49264@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jun 29 15:05:26 2021 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 1lyDQc-0006wz-7e for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 29 Jun 2021 15:05:26 +0200 Original-Received: from localhost ([::1]:59478 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lyDQb-0004GM-3i for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 29 Jun 2021 09:05:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60550) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyDMQ-00005P-CU for bug-gnu-emacs@gnu.org; Tue, 29 Jun 2021 09:01:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:42283) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lyDMM-0006zd-7z for bug-gnu-emacs@gnu.org; Tue, 29 Jun 2021 09:01:06 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lyDMM-0004eb-3w for bug-gnu-emacs@gnu.org; Tue, 29 Jun 2021 09:01:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Jun 2021 13:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49264 X-GNU-PR-Package: emacs Original-Received: via spool by 49264-submit@debbugs.gnu.org id=B49264.162497161317826 (code B ref 49264); Tue, 29 Jun 2021 13:01:02 +0000 Original-Received: (at 49264) by debbugs.gnu.org; 29 Jun 2021 13:00:13 +0000 Original-Received: from localhost ([127.0.0.1]:53829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lyDLY-0004dS-RX for submit@debbugs.gnu.org; Tue, 29 Jun 2021 09:00:13 -0400 Original-Received: from mail-wm1-f42.google.com ([209.85.128.42]:46872) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lyDLX-0004cC-2f for 49264@debbugs.gnu.org; Tue, 29 Jun 2021 09:00:12 -0400 Original-Received: by mail-wm1-f42.google.com with SMTP id v20-20020a05600c2154b02901dcefb16af0so2368514wml.5 for <49264@debbugs.gnu.org>; Tue, 29 Jun 2021 06:00:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=0CdbJzPJ/Ieg63bHkigcGJjzD9G5B4zTFFDqC0GaQYY=; b=TD7WGZk/f2VzWhHCsUmJdDjTqCPDCmNXL5zif4Ylwj8jfMrBxThh6wG/0tXoir7JgE JOrQ7cfEomXXEm3WHA0ALRno+qJhxxrQygiAPDczzQviSLazYaAlt9QBx4fO3cJWxqqf MEB6xdK5bauHZ0I961srVlQtwz4bWQKjnZhOjSQucU3FMg7lFt/FezwcyVViL1wV83Te Bbr3tkhC3vS0Q2GAiBzyvLVZtssZpTVCYZ7tzsZUWFPPGsxxNh1JZPS5ftFnQ2+eVUu5 9+9THjUZRHIfrpt9wEGxWRjp8jwpLlJ7/QAzxFLEJLSfSz/9BM0DFpMj8JIjaRj7iIhY kyRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=0CdbJzPJ/Ieg63bHkigcGJjzD9G5B4zTFFDqC0GaQYY=; b=Nix555b79QwJ6OxwepyhnO6YdkyLbQThOvN/m8X3rSPBS4uS6eJHjA0TdvH4VBo4mR AdyDBuVOxVlOetWzuBXwynEuybp1E/FUZPklc7rCKwf4vV6y/37R5vMhlQZggcRl4syL 0knG6gwTtZOpsrv/nO50XWV93UOzIyBtGXTW4gXhLHvOuQ/iHH2AN5hOqsu1L5M77LqG GvtsA5k9jHA1+1aOVXpmpPgtQ8iJ/1FdgR3w0VVTyAM2/5/szTEra9wHwvVGsF5fOa7G BrHBj2dDC8pxm8C1aBduAToyIYy5lJvYsPCCz19Zzf0pZ0FFl+ZPGO8c/reqrDC1JKdb OFdg== X-Gm-Message-State: AOAM532BR/EDz2IrODuEJae38rPn6ZpIt48NdtdWTTgj1DiA1OsKbZdT QinjNeBiaJLqhT9P6Eoyikb7lZOKjck= X-Google-Smtp-Source: ABdhPJzxwv1AJ++K6loHriqg6/5bK5XCH7ss2AxhLjhGfC+ExJaUB7C9LbispZ71Mkrd7PS7Z6RBIg== X-Received: by 2002:a1c:7f4b:: with SMTP id a72mr5200048wmd.48.1624971605062; Tue, 29 Jun 2021 06:00:05 -0700 (PDT) Original-Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id f62sm6426880wmf.22.2021.06.29.06.00.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 29 Jun 2021 06:00:04 -0700 (PDT) In-Reply-To: <87fsx13aiz.fsf@aol.com> Content-Language: en-US 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:209100 Archived-At: Hi! Thanks for the report, I'll follow up on this discussion some more later, but some initial observations: On 29.06.2021 01:11, Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > As a workaround I removed all the uninteresting handlers from > vc-handled-backends and I get better times now, but IMHO it is still > very inefficient (almost a minute for project-switch-to-buffer is > excessive). And make it practically unusable. Could you evaluate (benchmark 1 '(project-current)) in one of your buffers? That should give us an estimate how long it takes to find the "current project" on your remote system. If I'm right, project-switch-to-buffer should take 25 x (that time). If you indeed only have 25 buffers (including hidden ones). > In any case: > > Maybe (I think I mentioned this before) `project.el` needs a sort of > cache to speedup some functions like `project-current` that are called > very frequently inside the project.el code. The difficulty here is probably with the large latency to the remote system. And our current approach calls the "find current project" logic for each open buffer. Even if we add the "current project" cache, it will only take effect at second and further invocations. Your first project-switch-to-buffer call will still take 3-5 minutes, which is unacceptable. Please get back to us with the requested measurements, and perhaps other observations (any research initiative is welcome), but if finding the current vc root for each buffer is unavoidably slow, we'll finally need to switch to a "project-contains-buffer-p generic" approach, previously discussed in e.g. "Speed up project-kill-buffers" thread on emacs-devel.