New pty implementation is really slow
Thomas Wolff
towo@towo.net
Sun Mar 22 07:43:14 GMT 2020
Am 22.03.2020 um 06:51 schrieb Marco Atzeri via Cygwin:
> Am 22.03.2020 um 04:21 schrieb Joe via Cygwin:
>> I'm using cygwin 3.1.4 on Windows 10.
>>
>> The new pseudo terminal stuff seems really slow.
>>
>> For example:
>> $ time seq 10000
>> (output omitted)
>> real 0m23.510s
>> user 0m1.515s
>> sys 0m4.483s
>>
>> If I minimize the mintty window while seq is running, it gets
>> slightly better:
>> real 0m4.562s
>> user 0m0.390s
>> sys 0m1.202s
>>
>> But when I set CYGWIN=disable_pcon before starting mintty, I get:
>> $ time seq 10000
>> (output omitted)
>> real 0m0.366s
>> user 0m0.109s
>> sys 0m0.093s
>>
>> So the new implementation seems to be over 60 times slower than the
>> old one.
>> --
>
> only factor 10x on my test, amd only impacting mintty case
> Curious that 32bit disabled is 2x faster than 64bit disabled
>
> 64 bit
>
> Mintty with enabled (default)
>
> real 0m2.674s
> user 0m0.234s
> sys 0m0.859s
>
> mintty with disabled
>
> real 0m0.247s
> user 0m0.015s
> sys 0m0.046s
>
> CMD with enabled
> real 0m1.121s
> user 0m0.109s
> sys 0m0.187s
>
> CMD with disabled
> real 0m1.084s
> user 0m0.078s
> sys 0m0.312s
>
> 32 bit
>
> Mintty with enabled (default)
> real 0m2.548s
> user 0m0.281s
> sys 0m0.686s
>
> Mintty with disabled
> real 0m0.058s
> user 0m0.030s
> sys 0m0.000s
>
> CMD with enabled
> real 0m1.021s
> user 0m0.124s
> sys 0m0.296s
>
> CMD with disabled
> real 0m1.018s
> user 0m0.109s
> sys 0m0.265s
>
> I have the impression that the slow is due to some type of buffer
> expansion as I seem to notice a not uniform progress of the print
> the screen. But it could be just my eye...
With disable_pcon, output is sent to mintty in bunches of 256 bytes at
each read() invocation.
With pcon enabled, typical output size is 12 bytes. That doesn't seem to
be the whole story, though.
Thomas
More information about the Cygwin
mailing list