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#71355: 30.0.50; [PATCH] Improve performance of buffered output in Eshell Date: Thu, 6 Jun 2024 19:14:44 -0400 Message-ID: References: <22b0dc8f-11dc-5fd2-c75d-88c17580d28d@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33951"; mail-complaints-to="usenet@ciao.gmane.io" To: Jim Porter , 71355@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jun 07 01:24:10 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 1sFMSo-0008hO-U1 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 07 Jun 2024 01:24:10 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sFMST-0003mO-Cb; Thu, 06 Jun 2024 19:23:49 -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 1sFMSR-0003lw-S5 for bug-gnu-emacs@gnu.org; Thu, 06 Jun 2024 19:23:47 -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 1sFMSR-0003L2-JE for bug-gnu-emacs@gnu.org; Thu, 06 Jun 2024 19:23:47 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sFMSg-0004ql-3w for bug-gnu-emacs@gnu.org; Thu, 06 Jun 2024 19:24:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 06 Jun 2024 23:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71355 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 71355-submit@debbugs.gnu.org id=B71355.171771618518477 (code B ref 71355); Thu, 06 Jun 2024 23:24:02 +0000 Original-Received: (at 71355) by debbugs.gnu.org; 6 Jun 2024 23:23:05 +0000 Original-Received: from localhost ([127.0.0.1]:50568 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sFMRk-0004nu-JE for submit@debbugs.gnu.org; Thu, 06 Jun 2024 19:23:05 -0400 Original-Received: from mail-wr1-f45.google.com ([209.85.221.45]:51422) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sFMRj-0004nJ-LI for 71355@debbugs.gnu.org; Thu, 06 Jun 2024 19:23:04 -0400 Original-Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-35e4d6f7c5cso1459563f8f.2 for <71355@debbugs.gnu.org>; Thu, 06 Jun 2024 16:22:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717716103; x=1718320903; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :from:to:cc:subject:date:message-id:reply-to; bh=8pbGBoL9kIx+G89drmM8JYZp5NyRXoA4aZMehfrSZMc=; b=W7HwMazIWftbmekDBZv6i1OPQ+IWB0LSAMiHLhsCF9ItgOPbwiR8lesvgQ/1QeUUEZ gE1Y6XHLvYKx8eD6i4h3UCLJs+PQj6692QSzm9j220OSXbDGA46s6PcbXkvyg4gRHzis eZ9Vm4e25OTMnRzQDB828bk73Us1SpiwwuBOe+OqY1GMnT9GobDsUeuSwA0EF0mJ9VNW AwNLTvGqQ5cS79GRTL17Zk9o6DpeaQm3ifbn/iOEBr1fnod0iUW8BFFu+uimrzvk0zJF glp5MLjou6wnBRbm7zqpgo5UHWwofF1ApzPRqsKvXB1bvg6phuLRMuGHNyTKEXPO02LR vKig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717716103; x=1718320903; h=to:subject:message-id:date:mime-version:references:in-reply-to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8pbGBoL9kIx+G89drmM8JYZp5NyRXoA4aZMehfrSZMc=; b=v6KRJ1HiecAjQPWGP59myoCFaC1iK2j2R6Hrv+X1tTRmOZk0/w+PuEtoJVVoCd1Nao REImwue7MIxRsH+h6rSCbGqhjoYk+oKONk4LGLfUmkPbEb6xKxjVlUDw0NqmMjqUwqeG Hl9ylucID7Z0IKCjQBHhABPQkT8EpGSkJiPgWzgtJZ2o1SLZya2PqWNWypg1+IK0sxzJ NzLPM4IPMKN3N/+ARIeQhaIoX9eaDhKiCNOnNsQfwwyzRqBSqqyQD1nTSjKCZvNinCYU 3PPb2Cmtap6NH6ot93KhDq4moBSIFBuLEeb1MQGzKteIRCl0CFigQMGUSkMjnSO9/+EF xPcg== X-Forwarded-Encrypted: i=1; AJvYcCUYKik+RQGAcskyi9Qs7DFHf0vZn3Tr5T2oFsx92oLZF0KaIuC822YuvV20vlpT790vlVK+bhOBeeKr/PpMiy5UxZCCcnc= X-Gm-Message-State: AOJu0YxTLaGFH4X0Ft6ZWgaiBz0i2M4RNmpnuVfjdaIo4erqCWqC3u5a 2ciEOn3tM9SfborECdKtvQW3kzPOYmf5Mt5DSLLoRKOJnUGnINcTE+Rt/C3Ct/CEr4mmIx38yBb 3DsoIPnTG8VdPCzYCW+9cvuYz+B647WhpfV0= X-Google-Smtp-Source: AGHT+IEsBKBBZ6Q9D+Ho3ZMzr6M5gSsNRmL4Gu6eq/VAm1hVF6p94z91Ea/IjsDehCQcDr8m3TkajK/tRP/PPQZZzFg= X-Received: by 2002:a50:9e48:0:b0:57a:2e77:9bb7 with SMTP id 4fb4d7f45d1cf-57c508abd01mr338081a12.13.1717715685764; Thu, 06 Jun 2024 16:14:45 -0700 (PDT) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Thu, 6 Jun 2024 19:14:44 -0400 In-Reply-To: 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:286723 Archived-At: Jim Porter writes: >>> +(defcustom eshell-buffered-print-size 2048 >>> + "The size of the print queue in characters, for doing buffered printing. >>> This is basically a speed enhancement, to avoid blocking the Lisp code >>> from executing while Emacs is redisplaying." >> >> How did you decide on this value? > > Basically, I tried a few different command invocations that normally > take a while (the main ones being "cat config.log" and "ls -Al > /usr/bin") and scaled up the value by factors of two until I stopped > seeing any major perf improvements. (Larger values are faster still, but > not by a whole lot.) FWIW, I've experimented a bit on my machine, and I see the following using the command "time cat config.log" from an initially empty eshell buffer: | eshell-buffered-print-size | secs | | |----------------------------+------------+-------| | 256 | 1.922 secs | 1 | | 512 | 1.413 secs | 0.74 | | 1024 | 1.065 secs | 0.55 | | 2048 | 0.996 secs | 0.52 | | 4096 | 0.860 secs | 0.45 | | 8192 | 0.835 secs | 0.43 | | 16384 | 0.829 secs | 0.43 | To me, these numbers seem to suggest that, at least on this system, there is a sweet spot around 4096, but 2048 admittedly does already get us most of the way there. However, going above 8192 doesn't lead to any appreciable speedup. This is on a fast M2 machine; it would be interesting to see some experiments on slower machines as well. I'm assuming that we don't want to set it to some arbitrarily large number, but do we expect any adverse affects from choosing a slightly higher value? If not, is there a case to be made for choosing 4096 as the default?