GNU bug report logs - #71961
[PATCH] Improve tab-line-tabs-fixed-window-buffers performance

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Eval Exec <execvy@HIDDEN>; Keywords: patch; merged with #71958, #71959, #71960; Done: Juri Linkov <juri@HIDDEN>; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
bug marked as fixed in version 30.0.60, send any further explanations to 71958 <at> debbugs.gnu.org and Eval Exec <execvy@HIDDEN> Request was from Juri Linkov <juri@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Merged 71958 71959 71960 71961. Request was from Eli Zaretskii <eliz@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 6 Jul 2024 00:12:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 05 20:12:42 2024
Received: from localhost ([127.0.0.1]:45232 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sPt2f-0000IX-P5
	for submit <at> debbugs.gnu.org; Fri, 05 Jul 2024 20:12:42 -0400
Received: from lists.gnu.org ([209.51.188.17]:33250)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <execvy@HIDDEN>) id 1sPkH3-0001Hv-VC
 for submit <at> debbugs.gnu.org; Fri, 05 Jul 2024 10:50:58 -0400
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 <execvy@HIDDEN>) id 1sPkH0-000829-Lg
 for bug-gnu-emacs@HIDDEN; Fri, 05 Jul 2024 10:50:54 -0400
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 <execvy@HIDDEN>) id 1sPkGz-0004fy-3L
 for bug-gnu-emacs@HIDDEN; Fri, 05 Jul 2024 10:50:54 -0400
Received: by mail-oo1-xc44.google.com with SMTP id
 006d021491bc7-5c47b8c662aso839846eaf.1
 for <bug-gnu-emacs@HIDDEN>; 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)
MIME-Version: 1.0
From: Eval Exec <execvy@HIDDEN>
Date: Fri, 5 Jul 2024 22:50:40 +0800
Message-ID: <CAKfPJDoOsZbo9TENKJH856XML6h=tQkNVCEPcY0tOQtf8YJPzQ@HIDDEN>
Subject: [PATCH] Improve tab-line-tabs-fixed-window-buffers performance
To: bug-gnu-emacs@HIDDEN
Content-Type: multipart/mixed; boundary="000000000000909343061c813003"
Received-SPF: pass client-ip=2607:f8b0:4864:20::c44;
 envelope-from=execvy@HIDDEN; 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-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Fri, 05 Jul 2024 20:12:38 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--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: <f_ly8tbnl00>
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--




Acknowledgement sent to Eval Exec <execvy@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#71961; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 7 Jul 2024 18:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.