Received: (at 77775) by debbugs.gnu.org; 14 Apr 2025 04:42:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 14 00:42:19 2025 Received: from localhost ([127.0.0.1]:45234 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u4BeE-000268-RI for submit <at> debbugs.gnu.org; Mon, 14 Apr 2025 00:42:19 -0400 Received: from mout-p-101.mailbox.org ([80.241.56.151]:39410) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rahguzar@HIDDEN>) id 1u4BNI-00016e-Lh for 77775 <at> debbugs.gnu.org; Mon, 14 Apr 2025 00:24:49 -0400 Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:b231:465::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4ZbZ1z052tz9t8W; Mon, 14 Apr 2025 06:24:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1744604679; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=FeuY+MZXsKVd+qQ9GxEvI8YOkY//wz/DUupxsSDRkyk=; b=qrDVouiH4kc5+KcfKgoRTPH1qbcMHfzicUJSpTs0DvrzMTPmR8gTsl9xcmLps8uHBfUj2p o5332glLk7tMftBq/CqCRbxKF5EOS5n34zi5DTMDidzF7ePAHA/w82VTVncxs6216uA0yK 1pULA1udBaV3o2nG+aEZ5n33gUcBFvJkEpcYxi65UN5k6ydaTRhIa+aiqLM8RYB0RisciQ lOaXuX5bt1Bpm1Uo+zV44z7bvKoJ1xQHggcYinrHyuSq3MlW5nSST+wnkYQrVaJJuc3oYr zMoO6CdbCJLODEl6aA5PiAdRmwhyUxG/jrXw+GMR3fekhlHsIgKjRfUzLbEp3A== From: Azeem Hasan <rahguzar@HIDDEN> To: Roland Winkler <winkler@HIDDEN> Subject: Re: bug#77775: 30.1; Proced performance In-Reply-To: <87y0w4893z.fsf@HIDDEN> (Roland Winkler's message of "Sun, 13 Apr 2025 08:49:20 -0500") References: <875xj835ez.fsf@HIDDEN> <86o6x0jq7p.fsf@HIDDEN> <87y0w4893z.fsf@HIDDEN> Date: Mon, 14 Apr 2025 09:24:35 +0500 Message-ID: <87plhfxtdo.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-MBO-RS-META: qk54n3371k67y6ntfuxqzya5y9y8u48g X-MBO-RS-ID: 5ba665c6e14fdf4d7b3 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 77775 X-Mailman-Approved-At: Mon, 14 Apr 2025 00:42:15 -0400 Cc: Eli Zaretskii <eliz@HIDDEN>, Laurence Warne <laurencewarne@HIDDEN>, 77775 <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: -1.7 (-) Hi Roland, Roland Winkler <winkler@HIDDEN> writes: > On Sun, Apr 13 2025, Eli Zaretskii wrote: >>> ;; If none of the alternatives is non-nil, the attribute is ignored >>> ;; in the listing. >>> (let ((standard-attributes >>> - (car (proced-process-attributes (list-system-processes)))) >>> + (car (proced-process-attributes (last (list-system-processes))))) >>> new-format fmi) >>> (if (and proced-tree-flag >>> (assq 'ppid standard-attributes)) >>> >>> (The comment at the start of this diff is outdated) > > Why is this comment outdated? Previously, proced-format used emacs-pid > instead of (list-system-processes), which is obviously much faster. The comment talks about `emacs-pid' and I couldn't see how it is using `emacs-pid' and was confused about it till I checked history and saw that this used to be the case. Why is why I called it outdated. It is likely to cause confusion for someone like me reading the code for the first time. Looking at how the process-alist passed to `proced-format' is constructed, I think a better change that preserves current behavior would be: diff --git a/lisp/proced.el b/lisp/proced.el index 51e6f3aca4d..f03213f5764 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -1747,8 +1747,7 @@ proced-format ;; attributes, we take the first attribute that is non-nil for `emacs-pid'. ;; If none of the alternatives is non-nil, the attribute is ignored ;; in the listing. - (let ((standard-attributes - (car (proced-process-attributes (list-system-processes)))) + (let ((standard-attributes (car process-alist)) new-format fmi) (if (and proced-tree-flag (assq 'ppid standard-attributes)) > I haven't been engaged in the development of proced.el for some time. > But I feel I need to look at the current code more carefully before I > can comment on this patch (and the problem it is supposed to fix) in a > meaningful way. > > Roland Rahguzar
bug-gnu-emacs@HIDDEN
:bug#77775
; Package emacs
.
Full text available.Received: (at 77775) by debbugs.gnu.org; 14 Apr 2025 04:42:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 14 00:42:18 2025 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 1u4BeE-00025w-6s for submit <at> debbugs.gnu.org; Mon, 14 Apr 2025 00:42:18 -0400 Received: from mout-p-101.mailbox.org ([2001:67c:2050:0:465::101]:59824) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rahguzar@HIDDEN>) id 1u4BGL-0000l8-49 for 77775 <at> debbugs.gnu.org; Mon, 14 Apr 2025 00:17:37 -0400 Received: from smtp102.mailbox.org (smtp102.mailbox.org [IPv6:2001:67c:2050:b231:465::102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4ZbYsh6CxSz9tCG; Mon, 14 Apr 2025 06:17:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1744604248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=ruRrj0UmK8EefEXx14BB+U+IR5iKGE3DAza/QMAbJpI=; b=KiHV111vTdYyhZzfvHHIMZYvQVNSVzl/otU0pxcN4mYGQ9qSExD1zVqmmbwaIxkAoDKOy1 2TWinTUu9zSEj7MRO9aZnNErUym7cThq7/BiD3yo2kD0QGEWryiRdjVLj6LZ+3P12rvg9/ tDvlVHqwqryoiuA9/dYxEla6CLaorr+UGP95f0lgm2VrahtcJ0xDuYeK9cN5KNHeEOS2U6 fgDHQfyMQxA/OJQ1UEvuCOVmO0Jtfq4yi7nM6GHDlmm9dnsZB2xpPaAGVJ/h9YC4Mcx1u6 80c9/1eb158FircxBRmhPzuCzylxbJPvxzeFGdZ36Y0z9y/921CvgJdbRGJmfA== From: Azeem Hasan <rahguzar@HIDDEN> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1744604247; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=ruRrj0UmK8EefEXx14BB+U+IR5iKGE3DAza/QMAbJpI=; b=Qv/KwveKiogD7d/en+E15a8jGXyGV6IRuiwPRVHgX1eBXxa/IXozuRKW7ZlCgZsZvUqW7f JWWz3oL9kSfhqbZxr8/cAppalRtFRI2WE3YoJcyWxAHm8+2lGGw8w7c5qBrwWCbS4meh2d L/hNP66RZUK2zn9if0KJAkWE3X0rufeV2yHSH3K0iA8kqEbm+Ql+obYpCQq2CDehd/tYpA nBd7M4JTXOhCqhXiMIwypjjLJ8rTCkb8Y+3AVSUwOQLeAgSs/mkXyFWutvaE+snKlROAv2 6SRtO+pUwA7F4IKf4kHsI3fs6N+78cs/FkEoMpIpD6yYR6A+j51nfo+BgGkxWA== To: Laurence Warne <laurencewarne@HIDDEN> Subject: Re: bug#77775: 30.1; Proced performance In-Reply-To: <CAE2oLqgn9M4knYCe1rWrt8Qzgdf+K66TywW1qMRdmCKEvzaxaA@HIDDEN> (Laurence Warne's message of "Sun, 13 Apr 2025 13:36:31 +0100") References: <875xj835ez.fsf@HIDDEN> <86o6x0jq7p.fsf@HIDDEN> <CAE2oLqgn9M4knYCe1rWrt8Qzgdf+K66TywW1qMRdmCKEvzaxaA@HIDDEN> Date: Mon, 14 Apr 2025 09:17:23 +0500 Message-ID: <87v7r7xtpo.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-MBO-RS-META: gnetxyk7ojsufr5e1z6g6uhx8nmf77z3 X-MBO-RS-ID: b5f95163c65357b74b2 X-Rspamd-Queue-Id: 4ZbYsh6CxSz9tCG X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 77775 X-Mailman-Approved-At: Mon, 14 Apr 2025 00:42:15 -0400 Cc: Eli Zaretskii <eliz@HIDDEN>, Rahguzar <rahguzar@HIDDEN>, Roland Winkler <winkler@HIDDEN>, 77775 <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: -1.7 (-) Hi Laurence, Laurence Warne <laurencewarne@HIDDEN> writes: > Nice work! I too get ~50% speed improvement after applying the patch. At a glance the approach makes sense to me, it would be nice if we could change the FORMAT functions in proced-grammar-alist to take all the process info, which would remove the need for the additional defvar, but I think that would be a breaking change. The defvar is to preserve compatibility but even with it there can still be some backward incompatibility if someone is use those format functions outside of `proced-format'. I think that is highly unlikely and worth it for the better performance, especially since the only fallout from such a use will be that `proced-enable-color-flag' will not be honored so I think it is a safe change. Rahguzar
bug-gnu-emacs@HIDDEN
:bug#77775
; Package emacs
.
Full text available.Received: (at 77775) by debbugs.gnu.org; 13 Apr 2025 14:47:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 13 10:47:49 2025 Received: from localhost ([127.0.0.1]:43337 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u3yce-0000K4-RV for submit <at> debbugs.gnu.org; Sun, 13 Apr 2025 10:47:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37698) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <winkler@HIDDEN>) id 1u3ycb-0000Jp-Ry for 77775 <at> debbugs.gnu.org; Sun, 13 Apr 2025 10:47:46 -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 <winkler@HIDDEN>) id 1u3ycV-0006z3-Oh; Sun, 13 Apr 2025 10:47:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=aRWZjw68Mog2N4C12ga/LLo3Els7mAVQmDI/kejGlPE=; b=lP7L2YWGtyK3LL+jy0u/ xG1FxMU0nH1c+6C57OuGgTwDXTmHPXl+n5aEpqSCJwW0Ek2haYJEOtSli38vUJyCiNA957d6+FtXi WkHe1+vnGcoPnvE5gBnUxDGBqqfiUJ1TMzBaqz1iXF5geoK3B5/eoGsc0I1Y8uFMe8JLM41eZGk5H 2g3sNQBfrOOtUozVr6z0zDo2jvGabW/GSHuE7whuLm9lkveNTcYPiuhCE9cyCSHzvRf+tXDH2REn4 PVjxHUWJvnO3gMN4Prpw4n/sNR0B0V6jVGGrl9qxmokqdNGGQihdTGCkjbrXz+TZm68qi5TTsbSGc /z22MjnlpHzZQg==; From: Roland Winkler <winkler@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77775: 30.1; Proced performance In-Reply-To: <86a58kjfy3.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 13 Apr 2025 17:26:12 +0300") References: <875xj835ez.fsf@HIDDEN> <86o6x0jq7p.fsf@HIDDEN> <87y0w4893z.fsf@HIDDEN> <86a58kjfy3.fsf@HIDDEN> Date: Sun, 13 Apr 2025 09:47:37 -0500 Message-ID: <87h62s86eu.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77775 Cc: laurencewarne@HIDDEN, rahguzar@HIDDEN, 77775 <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 (---) On Sun, Apr 13 2025, Eli Zaretskii wrote: >> Why is this comment outdated? Previously, proced-format used emacs-pid >> instead of (list-system-processes), which is obviously much faster. > > Your attribution is wrong: it wasn't me who wrote that, it was > Rahguzar. Sure. I only wanted to say that the code has evolved since I last touched it. So I want to look at it more carefully before I comment on this patch. Roland
bug-gnu-emacs@HIDDEN
:bug#77775
; Package emacs
.
Full text available.Received: (at 77775) by debbugs.gnu.org; 13 Apr 2025 14:26:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 13 10:26:30 2025 Received: from localhost ([127.0.0.1]:43263 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u3yI2-0007c6-7i for submit <at> debbugs.gnu.org; Sun, 13 Apr 2025 10:26:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40772) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u3yHy-0007bj-9S for 77775 <at> debbugs.gnu.org; Sun, 13 Apr 2025 10:26:27 -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 1u3yHs-0003n1-0I; Sun, 13 Apr 2025 10:26:20 -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=38M7+Jh79j2Y3uq8bQgJMVfec54CJ9pVpZt6j/7QsJ4=; b=gOJp2SEQ6AEn ZbDPgFkoGA8moNjgA0yj7gG6m9ARPOAHY3lxLPGmv/BVaZmE+wi3ysv79dnSxivTDFjg+EurFm9q4 Cas6G4YpZ53a7MXMtcg2o/FWCBgPqoQkFawtPZvqKFr56dxjk5cffcz7nPwrKKK9DlZg/BxP6Zl8c U2UdE2cd86GTw5s6LElT+nT8sDBfJ9koin88ovpCxifc1j/0CXX5QL+YzsAhzq7hl3kfUn4adorSO kkWZ3TvU+uvWRC/sWrVovHrNRT/kCGUe4fphwhjGq/HA8b8JJPQCf0H4gPDgAaJUFo6W7tgCxLE8B iB5kdSL0uIxlHKW7f6vLAg==; Date: Sun, 13 Apr 2025 17:26:12 +0300 Message-Id: <86a58kjfy3.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Roland Winkler <winkler@HIDDEN> In-Reply-To: <87y0w4893z.fsf@HIDDEN> (message from Roland Winkler on Sun, 13 Apr 2025 08:49:20 -0500) Subject: Re: bug#77775: 30.1; Proced performance References: <875xj835ez.fsf@HIDDEN> <86o6x0jq7p.fsf@HIDDEN> <87y0w4893z.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77775 Cc: laurencewarne@HIDDEN, rahguzar@HIDDEN, 77775 <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 (---) > From: Roland Winkler <winkler@HIDDEN> > Cc: Rahguzar <rahguzar@HIDDEN>, Laurence Warne > <laurencewarne@HIDDEN>, 77775 <at> debbugs.gnu.org > Date: Sun, 13 Apr 2025 08:49:20 -0500 > > On Sun, Apr 13 2025, Eli Zaretskii wrote: > >> ;; If none of the alternatives is non-nil, the attribute is ignored > >> ;; in the listing. > >> (let ((standard-attributes > >> - (car (proced-process-attributes (list-system-processes)))) > >> + (car (proced-process-attributes (last (list-system-processes))))) > >> new-format fmi) > >> (if (and proced-tree-flag > >> (assq 'ppid standard-attributes)) > >> > >> (The comment at the start of this diff is outdated) > > Why is this comment outdated? Previously, proced-format used emacs-pid > instead of (list-system-processes), which is obviously much faster. Your attribution is wrong: it wasn't me who wrote that, it was Rahguzar. > I haven't been engaged in the development of proced.el for some time. > But I feel I need to look at the current code more carefully before I > can comment on this patch (and the problem it is supposed to fix) in a > meaningful way. Thanks.
bug-gnu-emacs@HIDDEN
:bug#77775
; Package emacs
.
Full text available.Received: (at 77775) by debbugs.gnu.org; 13 Apr 2025 13:49:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 13 09:49:51 2025 Received: from localhost ([127.0.0.1]:41610 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u3xiY-00058o-Ai for submit <at> debbugs.gnu.org; Sun, 13 Apr 2025 09:49:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58910) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <winkler@HIDDEN>) id 1u3xiT-00057P-GC for 77775 <at> debbugs.gnu.org; Sun, 13 Apr 2025 09:49:48 -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 <winkler@HIDDEN>) id 1u3xiN-0006s9-0e; Sun, 13 Apr 2025 09:49:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=e9J5yV1nGw2IjKZNd3GgE3Tt3sna+xQqDdGRXUvAjm8=; b=KIogNUQIvsR7WZIsS8wM 65MPLzjnuvow0ik3y1M7emjUv8uZCWwlCjKI44QyDAfQlVm5UdrccjhupPyXc80982TDABHgVLhSt QN0OBRX4OQuiaeX5s/Cp1h9WF7dWpoG806tx5JCQNmaco23nW5Flsp5phyidMXJfIAcvI4j0nCjyW 5PP1RLB73gh17s7dGeNRst48be5DACv+W9ZbR/nvqxDAcW0MfbxZPJdbhKMPvAg966i2r/rEdnlxi S1XyuITlGMYbI7jjXYBDWfX7Dh5vG6ALRi5QGb27jtrY5ec9NBLcJ0SHVreoxxbFTP0hCKyF5MUYx jsNhG7EEHVe1Ng==; From: Roland Winkler <winkler@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#77775: 30.1; Proced performance In-Reply-To: <86o6x0jq7p.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 13 Apr 2025 13:44:26 +0300") References: <875xj835ez.fsf@HIDDEN> <86o6x0jq7p.fsf@HIDDEN> Date: Sun, 13 Apr 2025 08:49:20 -0500 Message-ID: <87y0w4893z.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77775 Cc: Laurence Warne <laurencewarne@HIDDEN>, Rahguzar <rahguzar@HIDDEN>, 77775 <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 (---) On Sun, Apr 13 2025, Eli Zaretskii wrote: >> ;; If none of the alternatives is non-nil, the attribute is ignored >> ;; in the listing. >> (let ((standard-attributes >> - (car (proced-process-attributes (list-system-processes)))) >> + (car (proced-process-attributes (last (list-system-processes))))) >> new-format fmi) >> (if (and proced-tree-flag >> (assq 'ppid standard-attributes)) >> >> (The comment at the start of this diff is outdated) Why is this comment outdated? Previously, proced-format used emacs-pid instead of (list-system-processes), which is obviously much faster. I haven't been engaged in the development of proced.el for some time. But I feel I need to look at the current code more carefully before I can comment on this patch (and the problem it is supposed to fix) in a meaningful way. Roland
bug-gnu-emacs@HIDDEN
:bug#77775
; Package emacs
.
Full text available.Received: (at 77775) by debbugs.gnu.org; 13 Apr 2025 12:35:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 13 08:35:50 2025 Received: from localhost ([127.0.0.1]:40342 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u3wYu-0002AV-NU for submit <at> debbugs.gnu.org; Sun, 13 Apr 2025 08:35:49 -0400 Received: from mail-ua1-x92d.google.com ([2607:f8b0:4864:20::92d]:61560) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <laurencewarne@HIDDEN>) id 1u3wYS-00023z-Al for 77775 <at> debbugs.gnu.org; Sun, 13 Apr 2025 08:35:21 -0400 Received: by mail-ua1-x92d.google.com with SMTP id a1e0cc1a2514c-86fbb48fc7fso1330860241.2 for <77775 <at> debbugs.gnu.org>; Sun, 13 Apr 2025 05:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744547714; x=1745152514; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=otRjHLh8N5nBYJIlhyH9V7+aOmMoFsZExiKIPyBptUc=; b=KqPdMlwifrMmr+AuHR6W9pPd5UYun3AFmPu+t7uJslg0kTHeD0CFIB6OgeuLC7/ayx IXC90J0JGnb9FHjyn91fwQhISFoLkD1aZKxPuC84MIUfmgTa8eo8G81igRipB15Az1v0 S0d4qfTg6tZYhumJUly1Xpmk2ACWOk8ugT6aHOX1k4s28RB4nnFVQp4juyYYPx55E4db fHKLvl6/mM6P97B+XeES2eglNJQxIiTbAp39Q1wx3SycxwkQpVn9ALYrdT+gLqOeqhxt ZFHmyygLBYzSTZUopjnnL6bo35zb+Ve9xDI+MX5B8K5Mqz5e+SqVgsRMVtaXnlSdRWRJ tvHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744547714; x=1745152514; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=otRjHLh8N5nBYJIlhyH9V7+aOmMoFsZExiKIPyBptUc=; b=Xn0fFQYS4KA3PyabpCkfj/YAdYr+OOR0Ie1OvTqXmcTvrAhwoHixx7iXOF923uhEFB Ghcf/V9FGU1fbCclGygtOep4wPF1oqFfp1jb2v4wSufEmMqv9+kX8PD/FZFY9KcxWQp1 kq963LkORpDmKJ0ubQUVAvcE7wDo3dTXJHQ/JZqrGQtTBj/Cy0DMocJVxZjevePR28Pn lFEIqqZrhWDjPjYlEKgMyugTgp/uMNzv9e4u9qSyA84DttzuN027hNoe4Se6pRb/Uq+T 471ODLDD8sCmJRCmQU//gvZ1UsjIenqLo6pO89Zg8dJcD7S5IdRxqWB/4VmxHOTWESgK ST/A== X-Forwarded-Encrypted: i=1; AJvYcCVv6w5mTHE+g7YYk2ZLANySKrcwnVgbCXYYF7hQaD4K8lb256KBuKRzVHzSpdqPjhyP3Sx67A==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzRlOBBXCUDBaKduG63kNUH11fqu1Fpn0JdypS9GPxB0DOOhion mh3+K+Lsk7E7pgRZX5QWSIXRZgdnHs3i03nPz2Q08ORBYxfmFB4YmEv6NpVvzwHE/qvmSDiS6Ip PNKBcnRV9TIezaWnLS5q1guvsgw4= X-Gm-Gg: ASbGncsVlGHCI7bZr4I9jJb1u5H2pwc63t9iE5e5Hn77e6z7yRAHLfoXPNyiYfA9Shl V/HaKCq0F/jcvm+3WWcQqIDrBFrQ7UQ62ONtDhG1sxZj9FThN0J0q8pPZqlhuSI6Fg/6YDRZZHr Qv0qYZKOSIW+2SbH3SWJM= X-Google-Smtp-Source: AGHT+IHHgAt9WoZZD2VNZg/fGFgJEFL1Oub02wlaEooTbQ1MjmvsTPw76m2QvLtKlZn79ULktpx7fKCwceKAYgdpGg0= X-Received: by 2002:a05:6102:14a4:b0:4bb:d062:455 with SMTP id ada2fe7eead31-4c9e4d2e3dcmr6768682137.0.1744547714260; Sun, 13 Apr 2025 05:35:14 -0700 (PDT) MIME-Version: 1.0 References: <875xj835ez.fsf@HIDDEN> <86o6x0jq7p.fsf@HIDDEN> In-Reply-To: <86o6x0jq7p.fsf@HIDDEN> From: Laurence Warne <laurencewarne@HIDDEN> Date: Sun, 13 Apr 2025 13:36:31 +0100 X-Gm-Features: ATxdqUFD1XgcL20_020tCbHE9xhB0okHyVHYF3K3_gHEOQosxxAA0riXOaf6VPY Message-ID: <CAE2oLqgn9M4knYCe1rWrt8Qzgdf+K66TywW1qMRdmCKEvzaxaA@HIDDEN> Subject: Re: bug#77775: 30.1; Proced performance To: Eli Zaretskii <eliz@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000cd65750632a82a02" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77775 Cc: Rahguzar <rahguzar@HIDDEN>, Roland Winkler <winkler@HIDDEN>, 77775 <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: -1.0 (-) --000000000000cd65750632a82a02 Content-Type: text/plain; charset="UTF-8" Nice work! I too get ~50% speed improvement after applying the patch. At a glance the approach makes sense to me, it would be nice if we could change the FORMAT functions in proced-grammar-alist to take all the process info, which would remove the need for the additional defvar, but I think that would be a breaking change. --000000000000cd65750632a82a02 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Nice work! I too get ~50% speed improvement after app= lying the patch.=C2=A0 At a glance the approach makes sense to me, it would= be nice if we could change the FORMAT functions in proced-grammar-alist t= o take all the process info, which would remove the need for the additional= defvar, but I think that would be a breaking change.</div></div> --000000000000cd65750632a82a02--
bug-gnu-emacs@HIDDEN
:bug#77775
; Package emacs
.
Full text available.Received: (at 77775) by debbugs.gnu.org; 13 Apr 2025 10:44:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 13 06:44:43 2025 Received: from localhost ([127.0.0.1]:39845 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u3upL-0003a0-S3 for submit <at> debbugs.gnu.org; Sun, 13 Apr 2025 06:44:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57046) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1u3upG-0003Y1-8W for 77775 <at> debbugs.gnu.org; Sun, 13 Apr 2025 06:44:37 -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 1u3upA-0005WS-KN; Sun, 13 Apr 2025 06:44:28 -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=SDXHkmLXev5w+ljQb/zXi+dxaf8GevddkmUD7AVBs3U=; b=Wi2o0hVDGNRg Cpr2QjLGtKEm8c3eVFwUOJfPm2pxOQVZD2TWFQ4btIURU9D5WUa8FG5o4i3GlEurTiQGBdjOiN5vT cL70PFAZyJUB145kTOyLQHc6mz+zfoFb1t9lJbIt820si5QX53OHBRz5ijgw40ouPxuThyg2XAsoa iTJTDUjpK+I0rJKS2tITqeXpJX/y+OtaCuMmvcsqLpQRiZcwL9gbqZJncBXJLEcFtpe7hv+GWpbKm vBPR6/2nBd5mJKN/Smb7H5M591eCIOur2ipkUsXIQIlxhyNdXKf0JVfdg/Mg2vzsXKqXzy3oJP4JE edmyF80CWRLp4GgS23yPrA==; Date: Sun, 13 Apr 2025 13:44:26 +0300 Message-Id: <86o6x0jq7p.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Rahguzar <rahguzar@HIDDEN>, Roland Winkler <winkler@HIDDEN>, Laurence Warne <laurencewarne@HIDDEN> In-Reply-To: <875xj835ez.fsf@HIDDEN> (bug-gnu-emacs@HIDDEN) Subject: Re: bug#77775: 30.1; Proced performance References: <875xj835ez.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77775 Cc: 77775 <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 (---) > Date: Sun, 13 Apr 2025 12:08:04 +0500 > From: Rahguzar via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> > > > Dear Emacs developers, > > I sometimes see pauses when I have a proced buffer with auto update enabled. As a benchmark I tried > M-: (benchmark-run-compiled 100 (proced-update t t)) RET > (8.874007655 23 0.4591267360000001) > > >From profiler the what takes most time is: > > 1) Call to `proced-process-attributes' in `proced-update'. This is unavoidable. > 2) Another call to `proced-process-attributes' in `proced-format'. This call gets attributes for all the process although it only need them for one. > > I tried the diff > diff --git a/lisp/proced.el b/lisp/proced.el > index 51e6f3aca4d..c1a27cd0b15 100644 > --- a/lisp/proced.el > +++ b/lisp/proced.el > @@ -1748,7 +1748,7 @@ proced-format > ;; If none of the alternatives is non-nil, the attribute is ignored > ;; in the listing. > (let ((standard-attributes > - (car (proced-process-attributes (list-system-processes)))) > + (car (proced-process-attributes (last (list-system-processes))))) > new-format fmi) > (if (and proced-tree-flag > (assq 'ppid standard-attributes)) > > (The comment at the start of this diff is outdated) > > After this: > M-: (benchmark-run-compiled 100 (proced-update t t)) RET > (5.910094172 18 0.4095661129999999) > > 3) `proced-format-pid' takes a lot of time. The culprit here is a call to `(process-attributes pid)'. To avoid it, I added a new variable `proced-format-current-process` which is let bound to the process being formatted in `proced-format'. This can then be used by format functions to look up other attributes if needed. The diff this time is larger: > > diff --git a/lisp/proced.el b/lisp/proced.el > index c1a27cd0b15..42782615b33 100644 > --- a/lisp/proced.el > +++ b/lisp/proced.el > @@ -428,6 +428,9 @@ proced-sort-internal > "Sort scheme for listing (internal format). > It is a list of lists (KEY PREDICATE REVERSE).") > > +(defvar proced-format-current-process nil > + "Symbol holding the process that is being formatted by function `proced-format'.") > + > (defvar proced-marker-char ?* ; the answer is 42 > "In Proced, the current mark character.") > > @@ -1682,13 +1685,13 @@ proced-format-state > > (defun proced-format-pid (pid) > "Format PID." > - (let ((proc-info (process-attributes pid)) > - (pid-s (number-to-string pid))) > + (let ((pid-s (number-to-string pid))) > (cond ((and proced-enable-color-flag > (not (file-remote-p default-directory)) > (equal pid (emacs-pid))) > (propertize pid-s 'font-lock-face 'proced-emacs-pid)) > - ((and proced-enable-color-flag (equal pid (alist-get 'sess proc-info))) > + ((and proced-enable-color-flag > + (equal pid (alist-get 'sess proced-format-current-process))) > (propertize pid-s 'font-lock-face 'proced-session-leader-pid)) > (proced-enable-color-flag > (propertize pid-s 'font-lock-face 'proced-pid)) > @@ -1814,7 +1817,8 @@ proced-format > (end-of-line) > (setq value (cdr (assq key (cdr process)))) > (insert (if value > - (apply #'propertize (funcall fun value) fprops) > + (let ((proced-format-current-process process)) > + (apply #'propertize (funcall fun value) fprops)) > (format (concat "%" (number-to-string (nth 3 grammar)) "s") > unknown)) > whitespace) > @@ -1828,7 +1832,9 @@ proced-format > (dolist (process process-alist) > (end-of-line) > (setq value (cdr (assq key (cdr process)))) > - (insert (if value (apply #'propertize (funcall fun value) fprops) > + (insert (if value > + (let ((proced-format-current-process process)) > + (apply #'propertize (funcall fun value) fprops)) > unknown)) > (forward-line)) > (push (apply #'propertize (nth 1 grammar) hprops) header-list)) > @@ -1839,7 +1845,8 @@ proced-format > (dolist (process process-alist) > (setq value (cdr (assq key (cdr process)))) > (if value > - (setq value (apply #'propertize (funcall fun value) fprops) > + (setq value (let ((proced-format-current-process process)) > + (apply #'propertize (funcall fun value) fprops)) > width (max width (length value)) > field-list (cons value field-list)) > (push unknown field-list) > > but I think straightforward. Now: > M-: (benchmark-run-compiled 100 (proced-update t t)) RET > (4.046857128 16 0.441410039) > > Together these two cut down the time `proced-update' by more than a half and the pauses are now much less noticeable. > > Please let me know if these changes are acceptable and I will prepare a patch. Roland and Laurence, any comments?
bug-gnu-emacs@HIDDEN
:bug#77775
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 13 Apr 2025 07:27:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 13 03:27:58 2025 Received: from localhost ([127.0.0.1]:37908 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u3rkt-0003dQ-BT for submit <at> debbugs.gnu.org; Sun, 13 Apr 2025 03:27:58 -0400 Received: from lists.gnu.org ([2001:470:142::17]:43192) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rahguzar@HIDDEN>) id 1u3rS7-0008Iq-5w for submit <at> debbugs.gnu.org; Sun, 13 Apr 2025 03:08:30 -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 <rahguzar@HIDDEN>) id 1u3rS0-0003iN-6G for bug-gnu-emacs@HIDDEN; Sun, 13 Apr 2025 03:08:21 -0400 Received: from mout-p-201.mailbox.org ([80.241.56.171]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from <rahguzar@HIDDEN>) id 1u3rRw-0000JE-4u for bug-gnu-emacs@HIDDEN; Sun, 13 Apr 2025 03:08:19 -0400 Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4Zb1j50cp6z9sth for <bug-gnu-emacs@HIDDEN>; Sun, 13 Apr 2025 09:08:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1744528089; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=v4zKsjkdIw+Yqy1PPggvqsATufDLv01OLd1voQHK6gs=; b=C3yYt73faEVq+svL0B6Zj8AK4+V8h4jubqGh/hHxlsTT2rVyxqboZFZNQiIqzSvsxGnRG0 vtVsEtSocHNEcqWGG+yDWb28Fd25SCA2VBpWmaaBzriq8ADuHPHOAzahmW6aTxdeGxPfXu haG2ybSmK1Ly//sxdy0wrDHtvR5cHPguRm5p/eSVCoC/kl4stQUixYkW23VErPmsunjp/6 ZcVlcJ1B2ansXubypCGQ9tEHgts5KD57BZ8zZ0vPXhgIAoDgG6xAz18zWxXhqX4Q2IFPb4 jPuwwAGCi135dWEdfky8+xrkaZFuzFsgdbFvJ8Nm/e0T9CZhuxWocLG9/PK5Yw== From: Rahguzar <rahguzar@HIDDEN> To: bug-gnu-emacs@HIDDEN Subject: 30.1; Proced performance X-Debbugs-Cc: Date: Sun, 13 Apr 2025 12:08:04 +0500 Message-ID: <875xj835ez.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-MBO-RS-META: nbzemhjyrk6zifk3qoarmmhwjipww6p4 X-MBO-RS-ID: 130bd85713cb6b02973 Received-SPF: pass client-ip=80.241.56.171; envelope-from=rahguzar@HIDDEN; helo=mout-p-201.mailbox.org X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Sun, 13 Apr 2025 03:27:49 -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: -0.0 (/) Dear Emacs developers, I sometimes see pauses when I have a proced buffer with auto update enabled. As a benchmark I tried M-: (benchmark-run-compiled 100 (proced-update t t)) RET (8.874007655 23 0.4591267360000001) From profiler the what takes most time is: 1) Call to `proced-process-attributes' in `proced-update'. This is unavoidable. 2) Another call to `proced-process-attributes' in `proced-format'. This call gets attributes for all the process although it only need them for one. I tried the diff diff --git a/lisp/proced.el b/lisp/proced.el index 51e6f3aca4d..c1a27cd0b15 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -1748,7 +1748,7 @@ proced-format ;; If none of the alternatives is non-nil, the attribute is ignored ;; in the listing. (let ((standard-attributes - (car (proced-process-attributes (list-system-processes)))) + (car (proced-process-attributes (last (list-system-processes))))) new-format fmi) (if (and proced-tree-flag (assq 'ppid standard-attributes)) (The comment at the start of this diff is outdated) After this: M-: (benchmark-run-compiled 100 (proced-update t t)) RET (5.910094172 18 0.4095661129999999) 3) `proced-format-pid' takes a lot of time. The culprit here is a call to `(process-attributes pid)'. To avoid it, I added a new variable `proced-format-current-process` which is let bound to the process being formatted in `proced-format'. This can then be used by format functions to look up other attributes if needed. The diff this time is larger: diff --git a/lisp/proced.el b/lisp/proced.el index c1a27cd0b15..42782615b33 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -428,6 +428,9 @@ proced-sort-internal "Sort scheme for listing (internal format). It is a list of lists (KEY PREDICATE REVERSE).") +(defvar proced-format-current-process nil + "Symbol holding the process that is being formatted by function `proced-format'.") + (defvar proced-marker-char ?* ; the answer is 42 "In Proced, the current mark character.") @@ -1682,13 +1685,13 @@ proced-format-state (defun proced-format-pid (pid) "Format PID." - (let ((proc-info (process-attributes pid)) - (pid-s (number-to-string pid))) + (let ((pid-s (number-to-string pid))) (cond ((and proced-enable-color-flag (not (file-remote-p default-directory)) (equal pid (emacs-pid))) (propertize pid-s 'font-lock-face 'proced-emacs-pid)) - ((and proced-enable-color-flag (equal pid (alist-get 'sess proc-info))) + ((and proced-enable-color-flag + (equal pid (alist-get 'sess proced-format-current-process))) (propertize pid-s 'font-lock-face 'proced-session-leader-pid)) (proced-enable-color-flag (propertize pid-s 'font-lock-face 'proced-pid)) @@ -1814,7 +1817,8 @@ proced-format (end-of-line) (setq value (cdr (assq key (cdr process)))) (insert (if value - (apply #'propertize (funcall fun value) fprops) + (let ((proced-format-current-process process)) + (apply #'propertize (funcall fun value) fprops)) (format (concat "%" (number-to-string (nth 3 grammar)) "s") unknown)) whitespace) @@ -1828,7 +1832,9 @@ proced-format (dolist (process process-alist) (end-of-line) (setq value (cdr (assq key (cdr process)))) - (insert (if value (apply #'propertize (funcall fun value) fprops) + (insert (if value + (let ((proced-format-current-process process)) + (apply #'propertize (funcall fun value) fprops)) unknown)) (forward-line)) (push (apply #'propertize (nth 1 grammar) hprops) header-list)) @@ -1839,7 +1845,8 @@ proced-format (dolist (process process-alist) (setq value (cdr (assq key (cdr process)))) (if value - (setq value (apply #'propertize (funcall fun value) fprops) + (setq value (let ((proced-format-current-process process)) + (apply #'propertize (funcall fun value) fprops)) width (max width (length value)) field-list (cons value field-list)) (push unknown field-list) but I think straightforward. Now: M-: (benchmark-run-compiled 100 (proced-update t t)) RET (4.046857128 16 0.441410039) Together these two cut down the time `proced-update' by more than a half and the pauses are now much less noticeable. Please let me know if these changes are acceptable and I will prepare a patch. Thanks, Rahguzar In GNU Emacs 30.1 (build 1, aarch64-redhat-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.2) of 2025-03-01 built on aebb4e0b2cb247d5ab04316e77c1c8ce System Description: Fedora Linux Asahi Remix 41 (Forty One) Configured using: 'configure --build=aarch64-redhat-linux --host=aarch64-redhat-linux --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --disable-gc-mark-trace --with-cairo --with-dbus --with-gif --with-gpm=no --with-harfbuzz --with-jpeg --with-modules --with-native-compilation=aot --with-pgtk --with-png --with-rsvg --with-sqlite3 --with-tiff --with-tree-sitter --with-webp --with-xpm build_alias=aarch64-redhat-linux host_alias=aarch64-redhat-linux CC=gcc 'CFLAGS=-DMAIL_USE_LOCKF -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' 'LDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' CXX=g++ 'CXXFLAGS=-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB Important settings: value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix Major mode: mu4e:main Minor modes in effect: windmove-mode: t corfu-history-mode: t corfu-popupinfo-mode: t server-mode: t mu4e-search-minor-mode: t mu4e-update-minor-mode: t mu4e-context-minor-mode: t dirvish-override-dired-mode: t satchel-mode: t nerd-icons-completion-mode: t marginalia-mode: t vertico-multiform-mode: t vertico-mode: t evil-goggles-mode: t anzu-mode: t evil-mode: t evil-local-mode: t recentf-mode: t savehist-mode: t save-place-mode: t electric-pair-mode: t override-global-mode: t pixel-scroll-precision-mode: t repeat-mode: t midnight-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t buffer-read-only: t size-indication-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t abbrev-mode: t Load-path shadows: /home/azeem/.local/state/emacs/elpaca/builds/transient/transient hides /usr/share/emacs/30.1/lisp/transient /home/azeem/.local/state/emacs/elpaca/builds/ef-themes/theme-loaddefs hides /usr/share/emacs/30.1/lisp/theme-loaddefs Features: (shadow emacsbug proced windmove oc-basic ol-eww eww-hacks tex-mode shell eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi view helpful cc-langs cc-vars cc-defs trace cl-print edebug debug backtrace info-look info dash smerge-mode diff dabbrev delsel face-remap nerd-icons-corfu consult-imenu vc-git diff-mode track-changes vc-dispatcher fabs consult vertico-directory pdf-roll pdf-annot tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-outline inspirehep-pdf companion-mode inspirehep reftex reftex-loaddefs reftex-vars bibtex pdf-links pdf-isearch let-alist pdf-misc imenu pdf-tools package pdf-view pdf-cache pdf-info tq pdf-util pdf-macs help-fns radix-tree vertico-sort doc-view jka-compr undo-fu-session dired-x dirvish-emerge dired-aux diredfl gnus-dired dirvish-subtree dirvish-icons dirvish-widgets url-handlers jit-spell ispell cape mastodon-media mastodon-profile mastodon-auth mastodon-client plstore mastodon mastodon-transient tp mastodon-search mastodon-widget mastodon-tl image-mode exif url-cache mastodon-toot multisession sqlite facemenu mastodon-iso mastodon-http url-http url-auth url-gw link-hint ffap goto-addr avy gnus-fun highlight-quoted corfu-history corfu-popupinfo corfu evil-embrace embrace expand-region text-mode-expansions the-org-mode-expansions org-element org-persist xdg org-id org-refile org-element-ast inline avl-tree generator er-basic-expansions expand-region-core expand-region-custom evil-surround shr-color mm-archive qp sort smiley gnus-cite mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg visual-wrap gnus-ml disp-table nndraft nnmh vertico-repeat epa-file network-stream nsm gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache server mu4e mu4e-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit executable ob-comint org-pcomplete pcomplete org-list org-footnote org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func org-compat org-macs mu4e-notification notifications mu4e-main smtpmail mu4e-view mu4e-mime-parts crm cal-menu calendar cal-loaddefs mu4e-headers mu4e-thread mu4e-actions mu4e-compose mu4e-draft gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win gnus nnheader range mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message shr pixel-fill kinsoku url-file svg xml dom browse-url flow-fill mule-util hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window ido message sendmail yank-media puny dirvish transient format-spec cus-start autorevert filenotify dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader mu4e-obsolete usher satchel ibuf-ext ibuffer ibuffer-loaddefs bookmark nerd-icons-completion nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon marginalia vertico-multiform vertico evil-goggles pulse color ef-spring-theme ef-themes pdf-loader anzu advice evil evil-integration evil-maps evil-commands reveal evil-jumps evil-command-window evil-types evil-search evil-ex evil-macros evil-repeat evil-states evil-core comp comp-cstr cl-extra help-mode comp-run comp-common evil-common rect evil-vars edmacro kmacro orderless compat mastodon-autoloads tp-autoloads yeetube-autoloads filechooser-autoloads wile-autoloads usher-autoloads undo-fu-session-autoloads ef-themes-autoloads jit-spell-autoloads satchel-autoloads pdf-tools-autoloads tablist-autoloads xr-autoloads link-hint-autoloads avy-autoloads yaml-mode-autoloads markdown-mode-autoloads magit-autoloads magit-section-autoloads llama-autoloads inspirehep-autoloads consult-hoogle-autoloads haskell-ng-mode-autoloads geiser-guile-autoloads geiser-autoloads fabs-autoloads companion-mode-autoloads eww-hacks-autoloads evil-embrace-autoloads embrace-autoloads expand-region-autoloads evil-surround-autoloads evil-nerd-commenter-autoloads evil-goggles-autoloads anzu-autoloads evil-autoloads goto-chg-autoloads eshell-syntax-highlighting-autoloads eat-autoloads package-lint-flymake-autoloads package-lint-autoloads macrostep-autoloads helpful-autoloads dash-autoloads highlight-quoted-autoloads dirvish-autoloads transient-autoloads diredfl-autoloads trashed-autoloads vertico-autoloads orderless-autoloads nerd-icons-completion-autoloads marginalia-autoloads embark-consult-autoloads embark-autoloads nerd-icons-corfu-autoloads nerd-icons-autoloads cape-autoloads corfu-autoloads consult-autoloads password-store-autoloads with-editor-autoloads elpaca-log elpaca-ui recentf tree-widget savehist saveplace elec-pair bind-key easy-mmode pcase ibuf-macs elpaca-menu-elpa flymake project compile text-property-search comint ansi-osc ansi-color warnings thingatpt pixel-scroll cua-base ring repeat rx midnight cus-edit pp cus-load wid-edit elpaca-menu-melpa url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util url-parse auth-source eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars mailcap elpaca-menu-org cl-seq elpaca elpaca-process cl-loaddefs cl-lib elpaca-autoloads rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win touch-screen pgtk-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo gtk pgtk multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 2800767 1018448) (symbols 48 55579 14) (strings 32 442784 42118) (string-bytes 1 104419678) (vectors 16 142884) (vector-slots 8 2364850 481311) (floats 8 2309 34438) (intervals 56 224392 6429) (buffers 992 81))
Rahguzar <rahguzar@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#77775
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.