From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eval Exec Newsgroups: gmane.emacs.bugs Subject: bug#71961: [PATCH] Improve tab-line-tabs-fixed-window-buffers performance Date: Fri, 5 Jul 2024 22:50:40 +0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000909343061c813003" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32739"; mail-complaints-to="usenet@ciao.gmane.io" To: 71961@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jul 06 02:13:34 2024 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 1sPt3U-0008Pn-SL for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 06 Jul 2024 02:13:32 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sPt35-0002ja-H2; Fri, 05 Jul 2024 20:13:07 -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 1sPt2z-0002ic-H0 for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2024 20:13: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 1sPt2z-0007pY-7v for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2024 20:13:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sPt32-0000KB-EW for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2024 20:13:04 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eval Exec Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Jul 2024 00:13:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 71961 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.17202247621157 (code B ref -1); Sat, 06 Jul 2024 00:13:04 +0000 Original-Received: (at submit) by debbugs.gnu.org; 6 Jul 2024 00:12:42 +0000 Original-Received: from localhost ([127.0.0.1]:45232 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sPt2f-0000IX-P5 for submit@debbugs.gnu.org; Fri, 05 Jul 2024 20:12:42 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:33250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sPkH3-0001Hv-VC for submit@debbugs.gnu.org; Fri, 05 Jul 2024 10:50:58 -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 1sPkH0-000829-Lg for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2024 10:50:54 -0400 Original-Received: from mail-oo1-xc44.google.com ([2607:f8b0:4864:20::c44]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sPkGz-0004fy-3L for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2024 10:50:54 -0400 Original-Received: by mail-oo1-xc44.google.com with SMTP id 006d021491bc7-5c47b8c662aso839846eaf.1 for ; Fri, 05 Jul 2024 07:50:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720191051; x=1720795851; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=sUb52YWak6ZCvlzs0Nq/47FQfk0H39kTZgwphkQfKGg=; b=BvKCMqr7n1Mf8lqGaF6i1T9qlrcuh3o1yozWJw88OszCGuHjmxkH3jKIV5ukwA8HtY EiplJi/i8SgoqEP7prp7vpJ0qzLyY8xaIyZifOHIOhkSJUxuNy4o04FuOnLMxBcDu1ug xM7UlZRyCDwG+IlAOUS5YwE5PAqBH+uS0w0kA1/rC+IY5fjSYv83khIHqVOiSSy3OeBZ Dvj6+2qPfpn0+ItfVH9O3BxPAhSRjburzFsIH/j1aLuv7/DDacfLjAf08Czvleqp1XUZ S9jcQcjQdseZx/xEo72M+TH2Pv3KQ8U6EFLeSCKawKB25kU9bBqWtq7c1CxxFfrjntn0 LQ8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720191051; x=1720795851; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=sUb52YWak6ZCvlzs0Nq/47FQfk0H39kTZgwphkQfKGg=; b=legwSsppyvwWr9mSnwZ/BluQvgCY3YoobwlDfaoeE+YVp3aNZKb5qNS6DRsP/hmD2k BkQIn6I4OAeyUES8mCLcKIG4/wvR0BcZhyx4RtrCB4G7d97u4Qilvcwbd5zgmmmpy/wG SpOmCdKtiIshbMINKxPQwI2Fti4Nf0leUU8XGTLpNM96Uhu828rpN7YRpzZ3TQYpxj4T DqiAKM0PpzUIdjvrDPwViQ1piuTe4g/mKRAz+TBxzppHcZRZzpgk5y6V89PWjcuQpEjX 6ipCorMu/mgonTqod36e65zphunj3eutpE8xNElD5KBUglxhx7LKZn7w9ain68iegWAw ClQA== X-Gm-Message-State: AOJu0Yw3dazSTI1UyjY8sJEScsw3/Ta7mW/MkYimkdNjUyKEHz+PKTwX E5fADmYne1KfFPBy5Ribq9Es3n9ZrypHTN8KVIT79PKGrLTMOuJLpc7hIyfO853yGI7HYxDo7Bd FBQ2tmklD8wrXdwwl0OUbzgAyHaxzGlLy5LSerg== X-Google-Smtp-Source: AGHT+IE8DuZtojMzAh3APdY4c8QLTfB22rjjX+z9K4TAPjnLknyYy7cjngl4CTyw85kzaO3Vc00ZWizLEUII97ALznM= X-Received: by 2002:a05:6870:d18a:b0:24c:ac7e:8a5c with SMTP id 586e51a60fabf-25e2bb2a712mr4002054fac.21.1720191051397; Fri, 05 Jul 2024 07:50:51 -0700 (PDT) Received-SPF: pass client-ip=2607:f8b0:4864:20::c44; envelope-from=execvy@gmail.com; helo=mail-oo1-xc44.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 05 Jul 2024 20:12:38 -0400 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:288443 Archived-At: --000000000000909343061c813003 Content-Type: text/plain; charset="UTF-8" Hello, After noticing severe lag when `buffer-list` exceeds 1000 buffers, particularly with `tab-line-switch-to-prev-tab` and `tab-line-switch-to-next-tab`, a profiler revealed that the sorting operation in `tab-line-tabs-fixed-window-buffers` heavily relies on the `seq-position` function. This reliance significantly impacts performance. To address this, I have proposed a patch to optimize the buffer sorting mechanism within `tab-line-tabs-fixed-window-buffers`. The solution involves replacing the inefficient `seq-position` calls with a hash table to cache buffer positions, which markedly enhances performance when handling large buffer lists. This is my first attempt at hacking Emacs. Do you have any suggestions on this idea? Thank you --000000000000909343061c813003 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-tab-line-tabs-fixed-window-buffers-performan.patch" Content-Disposition: attachment; filename="0001-Improve-tab-line-tabs-fixed-window-buffers-performan.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ly8tbnl00 RnJvbSBhMzc4ZDdiZWMyM2JjMGIzZWMxNGVmNTY0YmIyMTVhMDUyYmU4ODFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmFsIEVYRUMgPGV4ZWN2eUBnbWFpbC5jb20+CkRhdGU6IEZy aSwgNSBKdWwgMjAyNCAyMjo0NDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEltcHJvdmUgdGFi LWxpbmUtdGFicy1maXhlZC13aW5kb3ctYnVmZmVycyBwZXJmb3JtYW5jZQoKKiBsaXNwL3RhYi1s aW5lLmVsICh0YWItbGluZS10YWJzLWZpeGVkLXdpbmRvdy1idWZmZXJzKTogSW1wcm92ZSBzb3J0 aW5nIHBlcmZvcm1hbmNlIGJ5IGhhc2h0YWJsZS4KLS0tCiBsaXNwL3RhYi1saW5lLmVsIHwgOCAr KysrKystLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9saXNwL3RhYi1saW5lLmVsIGIvbGlzcC90YWItbGluZS5lbAppbmRleCAx ZDE0ZmRhOTgyNS4uZTQ5MDhjNjE1NDIgMTAwNjQ0Ci0tLSBhL2xpc3AvdGFiLWxpbmUuZWwKKysr IGIvbGlzcC90YWItbGluZS5lbApAQCAtNTU1LDEwICs1NTUsMTQgQEAgVGhpcyBtZWFucyB0aGF0 IHN3aXRjaGluZyB0byBhIGJ1ZmZlciBwcmV2aW91c2x5IHNob3duIGluIHRoZSBzYW1lCiB3aW5k b3cgd2lsbCBrZWVwIHRoZSBzYW1lIG9yZGVyIG9mIHRhYnMgdGhhdCB3YXMgYmVmb3JlIHN3aXRj aGluZy4KIEFuZCBuZXdseSBkaXNwbGF5ZWQgYnVmZmVycyBhcmUgYWRkZWQgdG8gdGhlIGVuZCBv ZiB0aGUgdGFiIGxpbmUuIgogICAobGV0KiAoKG9sZC1idWZmZXJzICh3aW5kb3ctcGFyYW1ldGVy IG5pbCAndGFiLWxpbmUtYnVmZmVycykpCisgICAgICAgICAoYnVmZmVyLXBvc2l0aW9ucyAobGV0 ICgoaW5kZXgtdGFibGUgKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAnZXEpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNlcS1kby1pbmRleGVkCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGFtYmRhIChidWYgaWR4KSAocHV0aGFzaCBidWYgaWR4IGluZGV4LXRhYmxlKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZC1idWZmZXJzKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbmRleC10YWJsZSkpCiAgICAgICAgICAobmV3LWJ1ZmZlcnMgKHNv cnQgKHRhYi1saW5lLXRhYnMtd2luZG93LWJ1ZmZlcnMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOmtleSAobGFtYmRhIChidWZmZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChvciAoc2VxLXBvc2l0aW9uIG9sZC1idWZmZXJzIGJ1ZmZlcikKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3QtcG9zaXRpdmUtZml4bnVtKSkpKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldGhhc2ggYnVmZmVyIGJ1ZmZlci1w b3NpdGlvbnMgbW9zdC1wb3NpdGl2ZS1maXhudW0pKSkpKQogICAgIChzZXQtd2luZG93LXBhcmFt ZXRlciBuaWwgJ3RhYi1saW5lLWJ1ZmZlcnMgbmV3LWJ1ZmZlcnMpCiAgICAgbmV3LWJ1ZmZlcnMp KQogCi0tIAoyLjQ0LjEKCg== --000000000000909343061c813003--