From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.bugs Subject: bug#45379: 28.0.50; Degraded Performance of describe-buffer-bindings Date: Fri, 5 Mar 2021 20:44:33 -0800 Message-ID: References: <02f717c6-dc96-4ba0-9117-2ef079ac556f@www.fastmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000780e1805bcd6db14" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17689"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Stephen Berman , Juri Linkov , Stefan Monnier , 45379@debbugs.gnu.org To: Sheng Yang Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Mar 06 05:45: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 1lIOog-0004WA-J7 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 06 Mar 2021 05:45:26 +0100 Original-Received: from localhost ([::1]:57924 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIOof-0001Sb-LA for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 05 Mar 2021 23:45:25 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55194) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIOoI-0001Rm-AJ for bug-gnu-emacs@gnu.org; Fri, 05 Mar 2021 23:45:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:52534) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIOoI-0008SW-2Q for bug-gnu-emacs@gnu.org; Fri, 05 Mar 2021 23:45:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lIOoH-0006xC-Ve for bug-gnu-emacs@gnu.org; Fri, 05 Mar 2021 23:45:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Mar 2021 04:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45379 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 45379-submit@debbugs.gnu.org id=B45379.161500588226684 (code B ref 45379); Sat, 06 Mar 2021 04:45:01 +0000 Original-Received: (at 45379) by debbugs.gnu.org; 6 Mar 2021 04:44:42 +0000 Original-Received: from localhost ([127.0.0.1]:35845 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lIOny-0006wJ-4X for submit@debbugs.gnu.org; Fri, 05 Mar 2021 23:44:42 -0500 Original-Received: from mail-pj1-f52.google.com ([209.85.216.52]:38753) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lIOnw-0006w1-Dj for 45379@debbugs.gnu.org; Fri, 05 Mar 2021 23:44:41 -0500 Original-Received: by mail-pj1-f52.google.com with SMTP id q2-20020a17090a2e02b02900bee668844dso217488pjd.3 for <45379@debbugs.gnu.org>; Fri, 05 Mar 2021 20:44:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:user-agent :mime-version:date:message-id:subject:to:cc; bh=6FP6XxRP0mHp0CBuxWl+jBG64Jpms1lBfwaIScH4Gt4=; b=nEAXOOFM4WEoZoup9S1tZxrDIeXj7MnviRZPZPuaZkdVLnXziIEQx50P6W39LoaEou SuB9jTrbB+/UAvBZeJxGkJEIiOnNwhikjhomB1lakVETiRnKU2ZCdZdpKkHK4iOhhCz2 zYFfe4b8O1TYTUnb3O5OlT/2rVRp5ueiKfK5cg0NITzb+EcNYz6JJlkULi+FgruEgT8g zgcxmcuFgH5Z/90g0oGfWJmcjrGbiSCVH8R/S9XMGYXDI7Pn5nXPfnn50bPUEuUxU/Y0 XM0u8t0Ab6MdxO0LZQZPAfAZhQL1wx9oM8dZO945oFmyt9KcrATJ2hYrkL+udt4GQceC i1vg== X-Gm-Message-State: AOAM531JW1Li8GHPWqyI1djRSE9rA3uHcxoo4wjZ8LdR6blA/HSqJruj BFtpVo+CJ0KY+1QNDdm9PGuyEM82kbuTlGt7XuY= X-Google-Smtp-Source: ABdhPJzvNXMkdISDGxnm1n9XOrd6dQzE8/1pYZGu6Z/XgBa2MtO95Yg0SKoKMW4j8LSWidwWYmqa6+jfMTM+v035+YY= X-Received: by 2002:a17:902:b683:b029:e5:d0a4:c545 with SMTP id c3-20020a170902b683b02900e5d0a4c545mr11815249pls.41.1615005874648; Fri, 05 Mar 2021 20:44:34 -0800 (PST) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 5 Mar 2021 20:44:33 -0800 In-Reply-To: (Stefan Kangas's message of "Fri, 8 Jan 2021 11:08:14 -0600") 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:201591 Archived-At: --000000000000780e1805bcd6db14 Content-Type: text/plain; charset="UTF-8" tags 45379 + patch thanks Stefan Kangas writes: > "Sheng Yang" writes: > >> Hi Juri, >> >> I recently came across a regression of performance in Emacs for >> describe bindings, which I have reported as bug#45379. After >> bisection, the offending seems to be a commit a649034336 you pushed in >> November 2020, to fix bug#5423. [...] >> >> a649034336 * bad Don't show key ranges if shadowed by different commands > > BTW, the offending commit is not Juri's. It is mine: > > Author: Stefan Kangas > Date: Fri Nov 13 15:28:29 2020 +0100 > > Don't show key ranges if shadowed by different commands Please try the attached patch and see that it fixes this performance regression. It turns out that we were doing unnecessary looping due to the above mentioned commit. While working on this, I also found that we can get rid of an unnecessary call to char_table_ref_and_range, which should make this function run even faster. I'm also copying in Kenichi Handa, who was the last to touch this code. Handa-san, please let us know if you have any comments on this patch. Thanks in advance. --000000000000780e1805bcd6db14 Content-Type: text/x-diff; charset="US-ASCII"; name="0001-Fix-describe-buffer-bindings-performance-regression.patch" Content-Disposition: attachment; filename="0001-Fix-describe-buffer-bindings-performance-regression.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: d0363175bcc4f359_0.1 RnJvbSBmOTVjNzVmMTExMmMxYWFlMGJkMDZhNjc1M2I2MGNlOGE1OTFkNmUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5AbWFyeGlzdC5zZT4KRGF0 ZTogU2F0LCA2IE1hciAyMDIxIDA1OjMyOjMyICswMTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IGRl c2NyaWJlLWJ1ZmZlci1iaW5kaW5ncyBwZXJmb3JtYW5jZSByZWdyZXNzaW9uCgoqIHNyYy9rZXlt YXAuYyAoZGVzY3JpYmVfdmVjdG9yKTogSW1wcm92ZSBjaGFyLXRhYmxlIHBlcmZvcm1hbmNlIGJ5 CnJlbW92aW5nIGFuIHVubmVjZXNzYXJ5IGxvb3AuICAoQnVnIzQ1Mzc5KQooc3ltc19vZl9rZXlt YXApIDxRc2VsZl9pbnNlcnRfY29tbWFuZD46IE5ldyBERUZTWU0uCi0tLQogc3JjL2tleW1hcC5j IHwgNDcgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMva2V5bWFwLmMgYi9zcmMva2V5bWFwLmMKaW5kZXggNzgyOTMxZmFkZi4uYzcwZGY5 OGE2ZSAxMDA2NDQKLS0tIGEvc3JjL2tleW1hcC5jCisrKyBiL3NyYy9rZXltYXAuYwpAQCAtMjky MCw3ICsyOTIwLDcgQEAgZGVzY3JpYmVfdmVjdG9yIChMaXNwX09iamVjdCB2ZWN0b3IsIExpc3Bf T2JqZWN0IHByZWZpeCwgTGlzcF9PYmplY3QgYXJncywKICAgTGlzcF9PYmplY3Qgc3VwcHJlc3Mg PSBRbmlsOwogICBib29sIGZpcnN0ID0gdHJ1ZTsKICAgLyogUmFuZ2Ugb2YgZWxlbWVudHMgdG8g YmUgaGFuZGxlZC4gICovCi0gIGludCBmcm9tLCB0bywgc3RvcDsKKyAgaW50IHRvLCBzdG9wOwog CiAgIGlmICgha2V5bWFwX3ApCiAgICAgewpAQCAtMjk0MCwzMiArMjk0MCwzMyBAQCBkZXNjcmli ZV92ZWN0b3IgKExpc3BfT2JqZWN0IHZlY3RvciwgTGlzcF9PYmplY3QgcHJlZml4LCBMaXNwX09i amVjdCBhcmdzLAogICBpZiAocGFydGlhbCkKICAgICBzdXBwcmVzcyA9IGludGVybiAoInN1cHBy ZXNzLWtleW1hcCIpOwogCi0gIGZyb20gPSAwOworICAvKiBJZiBWRUNUT1IgaXMgYSBjaGFyLXRh YmxlLCB3ZSBoYWQgYmV0dGVyIHB1dCBhIGJvdW5kYXJ5CisgICAgIGJldHdlZW4gbm9ybWFsIGNo YXJhY3RlcnMgKC0jeDNGRkY3RikgYW5kIDgtYml0IGNoYXJhY3RlcnMKKyAgICAgKCN4M0ZGRjgw LSkuICAqLwogICBpZiAoQ0hBUl9UQUJMRV9QICh2ZWN0b3IpKQogICAgIHN0b3AgPSBNQVhfNV9C WVRFX0NIQVIgKyAxLCB0byA9IE1BWF9DSEFSICsgMTsKICAgZWxzZQogICAgIHN0b3AgPSB0byA9 IEFTSVpFICh2ZWN0b3IpOwogCi0gIGZvciAoaW50IGkgPSBmcm9tOyA7IGkrKykKKyAgZm9yIChp bnQgaSA9IDA7IGkgPCB0bzsgaSsrKQogICAgIHsKICAgICAgIGJvb2wgdGhpc19zaGFkb3dlZCA9 IGZhbHNlOwogICAgICAgTGlzcF9PYmplY3Qgc2hhZG93ZWRfYnkgPSBRbmlsOwotICAgICAgaW50 IHJhbmdlX2JlZywgcmFuZ2VfZW5kOworICAgICAgaW50IHJhbmdlX2JlZzsKICAgICAgIExpc3Bf T2JqZWN0IHZhbCwgdGVtMjsKIAogICAgICAgbWF5YmVfcXVpdCAoKTsKIAotICAgICAgaWYgKGkg PT0gc3RvcCkKLQl7Ci0JICBpZiAoaSA9PSB0bykKLQkgICAgYnJlYWs7Ci0JICBzdG9wID0gdG87 Ci0JfQotCiAgICAgICBpbnQgc3RhcnRpbmdfaSA9IGk7CiAKICAgICAgIGlmIChDSEFSX1RBQkxF X1AgKHZlY3RvcikpCiAJeworCSAgLyogVGFrZSBjYXJlIG9mIHRoZSBib3VuZGFyeS4gICovCisJ ICBpZiAoaSA9PSBzdG9wKQorCSAgICBzdG9wID0gdG87CisKKwkgIC8qIEZpbmQgdGhlIGZpcnN0 IGVsZW1lbnQgYmV0d2VlbiBpIGFuZCBzdG9wIC0gMS4gIFB1dCBpdHMKKwkgICAgIGluZGV4IGlu IGkuICAqLwogCSAgcmFuZ2VfYmVnID0gaTsKIAkgIGkgPSBzdG9wIC0gMTsKIAkgIHZhbCA9IGNo YXJfdGFibGVfcmVmX2FuZF9yYW5nZSAodmVjdG9yLCByYW5nZV9iZWcsICZyYW5nZV9iZWcsICZp KTsKQEAgLTMwMjQsMjEgKzMwMjUsOCBAQCBkZXNjcmliZV92ZWN0b3IgKExpc3BfT2JqZWN0IHZl Y3RvciwgTGlzcF9PYmplY3QgcHJlZml4LCBMaXNwX09iamVjdCBhcmdzLAogICAgICAgaW5zZXJ0 MSAoRmtleV9kZXNjcmlwdGlvbiAoa2x1ZGdlLCBwcmVmaXgpKTsKIAogICAgICAgLyogRmluZCBh bGwgY29uc2VjdXRpdmUgY2hhcmFjdGVycyBvciByb3dzIHRoYXQgaGF2ZSB0aGUgc2FtZQotCSBk ZWZpbml0aW9uLiAgQnV0LCBpZiBWRUNUT1IgaXMgYSBjaGFyLXRhYmxlLCB3ZSBoYWQgYmV0dGVy Ci0JIHB1dCBhIGJvdW5kYXJ5IGJldHdlZW4gbm9ybWFsIGNoYXJhY3RlcnMgKC0jeDNGRkY3Rikg YW5kCi0JIDgtYml0IGNoYXJhY3RlcnMgKCN4M0ZGRjgwLSkuICAqLwotICAgICAgaWYgKENIQVJf VEFCTEVfUCAodmVjdG9yKSkKLQl7Ci0JICB3aGlsZSAoaSArIDEgPCBzdG9wCi0JCSAmJiAocmFu Z2VfYmVnID0gaSArIDEsIHJhbmdlX2VuZCA9IHN0b3AgLSAxLAotCQkgICB2YWwgPSBjaGFyX3Rh YmxlX3JlZl9hbmRfcmFuZ2UgKHZlY3RvciwgcmFuZ2VfYmVnLAotCQkJCQkJICAgJnJhbmdlX2Jl ZywgJnJhbmdlX2VuZCksCi0JCSAgIHRlbTIgPSBnZXRfa2V5ZWx0ICh2YWwsIDApLAotCQkgICAh TklMUCAodGVtMikpCi0JCSAmJiAhTklMUCAoRmVxdWFsICh0ZW0yLCBkZWZpbml0aW9uKSkpCi0J ICAgIGkgPSByYW5nZV9lbmQ7Ci0JfQotICAgICAgZWxzZQorCSBkZWZpbml0aW9uLiAgKi8KKyAg ICAgIGlmICghQ0hBUl9UQUJMRV9QICh2ZWN0b3IpKQogCXdoaWxlIChpICsgMSA8IHN0b3AKIAkg ICAgICAgJiYgKHRlbTIgPSBnZXRfa2V5ZWx0IChBUkVGICh2ZWN0b3IsIGkgKyAxKSwgMCksCiAJ CSAgICFOSUxQICh0ZW0yKSkKQEAgLTMwNDcsMTAgKzMwMzUsMTIgQEAgZGVzY3JpYmVfdmVjdG9y IChMaXNwX09iamVjdCB2ZWN0b3IsIExpc3BfT2JqZWN0IHByZWZpeCwgTGlzcF9PYmplY3QgYXJn cywKIAogICAgICAgLyogTWFrZSBzdXJlIGZvdW5kIGNvbnNlY3V0aXZlIGtleXMgYXJlIGVpdGhl ciBub3Qgc2hhZG93ZWQgb3IsCiAJIGlmIHRoZXkgYXJlLCB0aGF0IHRoZXkgYXJlIHNoYWRvd2Vk IGJ5IHRoZSBzYW1lIGNvbW1hbmQuICAqLwotICAgICAgaWYgKENIQVJfVEFCTEVfUCAodmVjdG9y KSAmJiBpICE9IHN0YXJ0aW5nX2kpCisgICAgICBpZiAoQ0hBUl9UQUJMRV9QICh2ZWN0b3IpICYm IGkgIT0gc3RhcnRpbmdfaQorCSAgLyogSWdub3JlIGBzZWxmLWluc2VydC1jb21tYW5kJyBmb3Ig cGVyZm9ybWFuY2UuICAqLworCSAgJiYgIUVRIChkZWZpbml0aW9uLCBRc2VsZl9pbnNlcnRfY29t bWFuZCkpCiAJewogCSAgTGlzcF9PYmplY3Qga2V5ID0gbWFrZV9uaWxfdmVjdG9yICgxKTsKLQkg IGZvciAoaW50IGogPSBzdGFydGluZ19pICsgMTsgaiA8PSBpOyBqKyspCisJICBmb3IgKGludCBq ID0gcmFuZ2VfYmVnICsgMTsgaiA8PSBpOyBqKyspCiAJICAgIHsKIAkgICAgICBBU0VUIChrZXks IDAsIG1ha2VfZml4bnVtIChqKSk7CiAJICAgICAgTGlzcF9PYmplY3QgdGVtID0gc2hhZG93X2xv b2t1cCAoc2hhZG93LCBrZXksIFF0LCAwKTsKQEAgLTMxMDksNiArMzA5OSw3IEBAIHN5bXNfb2Zf a2V5bWFwICh2b2lkKQogICBERUZTWU0gKFFkZXNjcmliZV9tYXBfdHJlZSwgImRlc2NyaWJlLW1h cC10cmVlIik7CiAKICAgREVGU1lNIChRa2V5bWFwX2Nhbm9uaWNhbGl6ZSwgImtleW1hcC1jYW5v bmljYWxpemUiKTsKKyAgREVGU1lNIChRc2VsZl9pbnNlcnRfY29tbWFuZCwgInNlbGYtaW5zZXJ0 LWNvbW1hbmQiKTsKIAogICAvKiBOb3cgd2UgYXJlIHJlYWR5IHRvIHNldCB1cCB0aGlzIHByb3Bl cnR5LCBzbyB3ZSBjYW4KICAgICAgY3JlYXRlIGNoYXIgdGFibGVzLiAgKi8KLS0gCjIuMzAuMQoK --000000000000780e1805bcd6db14--