From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: ido-switch-buffer is slow with many buffers; others are fast Date: Sun, 15 Nov 2020 10:15:34 -0500 Message-ID: References: <87ima7nbic.fsf@catern.com> <875z67mpyo.fsf@catern.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20829"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: emacs-devel@gnu.org, catern@catern.com, Dmitry Gutov To: Spencer Baugh Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Nov 15 16:16:26 2020 Return-path: Envelope-to: ged-emacs-devel@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 1keJlS-0005JV-8Y for ged-emacs-devel@m.gmane-mx.org; Sun, 15 Nov 2020 16:16:26 +0100 Original-Received: from localhost ([::1]:57904 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1keJlR-0007HN-B8 for ged-emacs-devel@m.gmane-mx.org; Sun, 15 Nov 2020 10:16:25 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34918) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1keJkj-0006jN-6X for emacs-devel@gnu.org; Sun, 15 Nov 2020 10:15:41 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:10144) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1keJkg-0006Zk-Jq for emacs-devel@gnu.org; Sun, 15 Nov 2020 10:15:40 -0500 Original-Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id E50FD1002FA; Sun, 15 Nov 2020 10:15:36 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 9FD6410023D; Sun, 15 Nov 2020 10:15:35 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1605453335; bh=OacbNiuhidLC92qBTm2UpwuoxEGMLOhIMMALvQevNRo=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=iv19RStiucpghGtDv3woYZlwCSy8FUREMtFyQO1OXuITinZ40MowBeJR8mS1OBkKC SjixW3a5tMl5hWWylioaYBHrf3aL7WOgSKyjkqPMAHF6Ua/iENNX/jUnUwoe5J5R5p clFLm57IRz6GPC9FdyYcjJt17LDF5x4ZVNQ6kTsB2iprK95TzE+HDT/qyEW54mkWuP n1D4acHABhni2lTkrurBldkv9jkLkUVrfchybqckPW756G3rl6hzkvTBfyyOvucx7r dgMMbxo/dD5v+jpBYRo0yCzHn3w5DWoi1/zSkYpyTQa7P5ucvc3n8Nj9D53kUeyBlG x0KqwM6F1iYYw== Original-Received: from alfajor (unknown [157.52.9.240]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 67A4212005C; Sun, 15 Nov 2020 10:15:35 -0500 (EST) In-Reply-To: <875z67mpyo.fsf@catern.com> (Spencer Baugh's message of "Sat, 14 Nov 2020 19:19:27 -0500") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/15 10:15:37 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:259200 Archived-At: > The associated bug#41029 mentions: >> Many of the buffer locals (in particular I think it's the >> SYMBOL_FORWARDED types --- my terminoly may be off), appear to be O(n) >> to bind, where n is the number of live buffers. > That's quite worrying - that implies that pretty much any code will run > slower as the number of buffers increases, even if it doesn't have > anything to do with buffers! Yup. It affects all the vars defined via `DEFVAR_PER_BUFFER`. > This explains the slow performance of let-binding case-fold-search > that I mentioned in another branch of this thread. Yes it's the source of that problem. > Is this poor scaling of binding buffer locals a known problem? At least since bug#41029, yes ;-) > Has anyone worked on fixing this? Not that I know, no. It's a fairly tricky part of the code, but if you're interested, I'd be very happy to help you along (I'm familiar with this code for having reworked it somewhat around the time of Emacs-24). Stefan