Performance regression in cygwin 3.4.0

Takashi Yano takashi.yano@nifty.ne.jp
Thu Dec 8 14:54:45 GMT 2022


Hi, Corinna, Ken, and other cygwin developers,

I tried to fix the following performance problem of
non-cygwin pipe and succeeded by applying the patch
attached.

Although it is not smart enough, it works as far as
I tested.

What do you think of this patch? Any other idea?

Comments or suggestions will be appreciated.

On Thu, 8 Dec 2022 18:46:56 +0900
Takashi Yano wrote:
> On Wed, 07 Dec 2022 19:38:19 +0000
> tryandbuy wrote:
> > Reading from stdin is very slow when a process runs outside of Cygwin Terminal.
> > 
> > Steps to reproduce:
> > 1. Create "test.txt" file using python code:
> > long_text = "10" * 2500
> > with open(r'test.txt', 'w') as f:
> >     for i in range(5000):
> >         f.write('KEY%03d: %d => %s\n' % (i % 100, i, long_text))
> > 
> > 2. Install "cygwin" package version > "3.3.6-1"
> > 3. Open windows command prompt (cmd.exe)
> > 4. Enter command:
> > type test.txt | c:\cygwin64\bin\wc.exe -l
> > 
> > When running the same command (use cat instead of type) on the Cygwin Terminal, no performance issues observed.
> > 
> > The last version of cygwin package without issues: 3.3.6-1
> > Versions of cygwin package with issues: 3.4.x - 3.5.x
> > 
> > P.S. I tested this combinations of pipings:
> > cygwin_prog | win_prog    # no issues
> > win_prog | cygwin_prog    # has issues when running in windows command prompt, no issues in Cygwin Terminal
> > cygwin_prog | cygwin_prog # has issues  when running in windows command prompt, no issues in Cygwin Terminal
> 
> I confirmed the problem. I also identified the code difference,
> which causes the problem, between cygwin 3.3.x and 3.4.0.
> 
> Let us consider how to fix that.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Cygwin-pipe-Fix-performance-degradation-for-non-cygw.patch
Type: application/octet-stream
Size: 2681 bytes
Desc: not available
URL: <https://cygwin.com/pipermail/cygwin-developers/attachments/20221208/ba6f1748/attachment.obj>


More information about the Cygwin-developers mailing list