Subject: Re: bug#56025: [PATCH v2] 29.0.50; em-extpipe-test-2 times out on EMBA and Cygwin

From: Jim Porter <[email-masked]>
Date: Sat, 23 Jul 2022 21:05:42 -0700

On 7/22/2022 12:00 PM, Ken Brown wrote:
> On 7/22/2022 12:16 AM, Jim Porter wrote:
>> Ok, I *think* this is done.
> 
> I can confirm that the em-extpipe tests now all pass on Cygwin, as do 
> the process tests.

Thanks for testing. I'm glad everything seems to be working for you too.

I did a bit more testing on my end to check out performance, since I 
figured we'd see at least some improvement from switching to pipes for 
passing data between processes. I wasn't prepared for just how much of 
an improvement though. On my system (GNU/Linux), this change makes 
piping in Eshell faster by a factor of 35x![1]

I'll repeat that since I'm pretty shocked myself: Eshell pipes are 
*thirty-five* times faster now!

For some details: I tested this by running "time *cat config.log | wc" 
in Eshell (n=20), and it went from an average of 4.80s to an average of 
0.134s. (Note that `time' in Eshell only times the first command, not 
the whole pipeline.) I chose this to test since config.log is reasonably 
big (1.13MiB on my system), the external cat program is pretty simple 
and mostly just does I/O, and wc's output is short so we don't have to 
worry about it writing a bunch of output to its (slow) PTY.

However, to put just a bit of a damper on things, this is still 5-10x 
slower than doing it in Bash, or with Eshell extpipes (which is really 
the same as just doing it in Bash, ultimately).

[1] YMMV, of course.