Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

FYI: doubleplusgood TCL socket performance Windows 10

84 views
Skip to first unread message

Ralf Fassel

unread,
Apr 11, 2019, 12:35:46 PM4/11/19
to
I'm in the middle of rolling out a high-data-rate application which we
originally provided on Windows-7. The TCL socket performance (of course
most probably the underlying Windows-7 TCP/IP stack) was not good enough
for the high data rates (Gigabit ethernet, using up to 100MByte/s).
Therefore we successfully used the iocpsock extension there (which
basically implements a multi-threaded double-buffer reading).

Now on Windows 10 I found that the plain TCL socket performance (of
course most probably the underlying Windows-10 TCP/IP stack) has greatly
improved and can cope with Gigabit in a single-threaded application.
I'm getting datarates above 100MByte/s, dumping them in parallel to SSD
and serving a responsive Tk gui. Sometimes the earth *is* a disc... :-)

Needless to say that the same hardware running under Linux never had any
problems with these data rates...

R'

Harald Oehlmann

unread,
Apr 14, 2019, 5:40:33 AM4/14/19
to
Ralf,

this is surprising !

I added your text on this ticket, where information on the plan
"iocpsock to TCL core" is collected:

https://core.tcl.tk/tcl/tktview/fc3c425cde46c6996c8543f701fcbeafd2b7ee5e

Thanks,
Harald

tombert

unread,
Apr 14, 2019, 6:17:43 PM4/14/19
to
Just for completeness, I had an issue with Nagle's algorithm which I had to disable also on linux to get full performance.
https://groups.google.com/forum/#!topic/comp.lang.tcl/xtVodiKNr0I



Ralf Fassel

unread,
Apr 15, 2019, 9:49:18 AM4/15/19
to
* Harald Oehlmann <wort...@yahoo.de>
| Am 11.04.2019 um 18:35 schrieb Ralf Fassel:
[...]
| > Now on Windows 10 I found that the plain TCL socket performance (of
| > course most probably the underlying Windows-10 TCP/IP stack) has greatly
| > improved and can cope with Gigabit in a single-threaded application.
| > I'm getting datarates above 100MByte/s, dumping them in parallel to SSD
| > and serving a responsive Tk gui.
| >
--<snip-snip>--
>
| Ralf,
>
| this is surprising !
>
| I added your text on this ticket, where information on the plan
| "iocpsock to TCL core" is collected:
>
| https://core.tcl.tk/tcl/tktview/fc3c425cde46c6996c8543f701fcbeafd2b7ee5e

In addition to my observation that I get full channel performance with
plain TCL sockets on Windows 10, iocpsock in zero-byte receive mode
maxes out at about 44MByte/s, reason unknown. I had no time to
investigate further since plain TCL works just fine...

I'm using a patched TCL which allows up to 10MB as -buffering for any
channel (instead of the default 1MB), but that was also the case before
on Windows-7 when plain TCL did not work and iocpsock did.

I have added this information to the above ticket as well.

R'

Harald Oehlmann

unread,
Apr 15, 2019, 10:14:52 AM4/15/19
to
I would be interested how iocpsock performs on Windows 10.
That is quite important to find reasons to implement it or not.

Thanks,
Harald

0 new messages