X-Loop: help-debbugs@HIDDEN Subject: bug#71961: [PATCH] Improve tab-line-tabs-fixed-window-buffers performance Resent-From: Eval Exec <execvy@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 06 Jul 2024 00:13:04 +0000 Resent-Message-ID: <handler.71961.B.17202247621157 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 71961 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 71961 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.17202247621157 (code B ref -1); Sat, 06 Jul 2024 00:13:04 +0000 Received: (at submit) by debbugs.gnu.org; 6 Jul 2024 00:12:42 +0000 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> 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-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--
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Eval Exec <execvy@HIDDEN> Subject: bug#71961: Acknowledgement ([PATCH] Improve tab-line-tabs-fixed-window-buffers performance) Message-ID: <handler.71961.B.17202247621157.ack <at> debbugs.gnu.org> References: <CAKfPJDoOsZbo9TENKJH856XML6h=tQkNVCEPcY0tOQtf8YJPzQ@HIDDEN> X-Gnu-PR-Message: ack 71961 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 71961 <at> debbugs.gnu.org Date: Sat, 06 Jul 2024 00:13:04 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 71961 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 71961: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D71961 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
Received: (at control) by debbugs.gnu.org; 6 Jul 2024 06:31:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jul 06 02:31:02 2024 Received: from localhost ([127.0.0.1]:45427 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sPywo-0000FM-0R for submit <at> debbugs.gnu.org; Sat, 06 Jul 2024 02:31:02 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51818) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1sPywm-0008Rm-9w; Sat, 06 Jul 2024 02:31:00 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1sPywc-0005OE-Sw; Sat, 06 Jul 2024 02:30:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=zAI6z8hiL3FnFSecIoG9Inm62kaYZ9pUZlr9la9Wm8o=; b=OYKdLfiEGgup 16sxEEBSYTSNE9urP/ml5hUFS7p4Sy+x2/IJqPr2dK/0Xz5zWPVDrxA+VXwwKCKJ/ChBGuTZ7HRjT 6WBfNUiep4pKSD9hitXMrSbRJa6fUUSc8tRYHCuCNmTTZe4LiTNLjhv9l8D+k3M5WrW1P2QJt3yo5 azm6EsIrbgSMy603zxdzGA8h62S5X1qtZPVGodCGIAsQf7Q3P4odAwpPdrRLahKq/ZxWWjZEKSv8M WUgoD+fgQNrkmHynYtG7mnKBR+3n2+lccwiM3fV3AcfkQxDyXXmVgkdXAyKuPMkQ1Y8AusZUMX3Y9 7sNVJuvLQ/XCJGJzGSuDaA==; Date: Sat, 06 Jul 2024 09:30:14 +0300 Message-Id: <86r0c758y1.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Eval Exec <execvy@HIDDEN> In-Reply-To: <CAKfPJDqn-JuVWGVqnSCmXmrkLZ7hAxGBj5ZV9ufnaTb_ojYqbw@HIDDEN> (message from Eval Exec on Fri, 5 Jul 2024 20:39:39 +0800) Subject: Re: bug#71960: [PATCH] Improve `tab-line-tabs-fixed-window-buffers` sorting performance References: <CAKfPJDqn-JuVWGVqnSCmXmrkLZ7hAxGBj5ZV9ufnaTb_ojYqbw@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control Cc: 71960 <at> debbugs.gnu.org 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: -3.3 (---) merge 71958 71961 71960 thanks > From: Eval Exec <execvy@HIDDEN> > Date: Fri, 5 Jul 2024 20:39:39 +0800 > > Enhanced > `tab-line-tabs-fixed-window-buffers` performance by optimizing buffer > sorting mechanism. Replaced inefficient `seq-position` calls with a hash > table to cache buffer positions, significantly improving speed when > handling large buffer lists. Actually, I see that all 4 bugs you submitted are the same bug, so I'm merging them.
Received: (at control) by debbugs.gnu.org; 7 Jul 2024 18:25:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 07 14:25:23 2024 Received: from localhost ([127.0.0.1]:49155 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sQWZf-00078I-LD for submit <at> debbugs.gnu.org; Sun, 07 Jul 2024 14:25:23 -0400 Received: from relay7-d.mail.gandi.net ([217.70.183.200]:46963) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1sQWZd-00077x-HF; Sun, 07 Jul 2024 14:25:21 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id 0D77020003; Sun, 7 Jul 2024 18:25:07 +0000 (UTC) From: Juri Linkov <juri@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#71958: [PATCH] Improve `tab-line-tabs-fixed-window-buffers` sorting performance In-Reply-To: <86plrp14zi.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 07 Jul 2024 20:33:53 +0300") Organization: LINKOV.NET References: <CAKfPJDqEVRKyKFC6w0vayTZF+dG4m28nGwbX74bis41w8hCvaA@HIDDEN> <86tth35993.fsf@HIDDEN> <86y16dgn7l.fsf@HIDDEN> <86plrp14zi.fsf@HIDDEN> Date: Sun, 07 Jul 2024 21:24:40 +0300 Message-ID: <86jzhxgivr.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-Sasl: juri@HIDDEN X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control Cc: 71958 <at> debbugs.gnu.org, execvy@HIDDEN 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: -1.7 (-) close 71958 30.0.60 thanks >> > I'll leave it to Juri to review the code and comment, but >> > just minor nits on your commit log message: >> >> I confirm this is the right fix. >> Thanks to Eval Exec. >> >> > In addition, I'd encourage you to start your legal paperwork of >> > assigning the copyright to the FSF at this time, so we could accept >> > your contributions without any restrictions. If you are willing to >> > start the paperwork now, I will send you the form to fill and the >> > instructions to go with it. >> >> Do I understand correctly that this patch could be installed now >> with Copyright-paperwork-exempt? > > Yes. Please also mention the bug number in the log message when you > commit. Ok, so now done.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.