* Ashok <
[email protected]>
| iocp 2.0 Alpha 0 released. No feature or API changes except support --<snip-snip>--
| Tcl extension implementing TCP and Bluetooth channels based on I/O
| completion ports. The iocp_inet package is API-compatible (except
| for some new Tcl 9 fconfigure options) with Tcl sockets while offering
| much higher performance
| (
https://wiki.tcl-lang.org/page/Package+iocp%5Finet).
Thank you very much for that great package, Ashok!
I finally took the time to benchmark iocp in my setting:
- server side is Linux, connected via 1 Gbit local network
- on my Windows-10 machine (latest patch, TCL 8.6.14,
iocp self compiled using Visual Studio 2022),
$ tclsh netbench.tcl client -server 192.168.1.164 -repeat 3 -provider "iocp tcl"
socket 192.168.1.164 10101
117.92 589619200 5.00 iocp->tcl
118.14 590700544 5.00 iocp->tcl
118.15 590774272 5.00 iocp->tcl
$ tclsh netbench.tcl client -server 192.168.1.164 -repeat 3 -provider "tcl"
socket 192.168.1.164 10101
75.82 379125760 5.00 tcl
77.64 388198400 5.00 tcl
76.03 380153856 5.00 tcl
Since I could not get the reverse direction past the windows firewall
(?), I rolled my own read-benchmark, basically:
- server side is Linux, connected via 1 Gbit local network
netcat -k -l 65432 < /dev/zero
- client:
- open the socket, configure -translation binary
- set up fileveent readable
- read in bunches of 65536 bytes
- do statistics
tcl::socket
58.20 MB/s (avg 58.48 MB/s, lowest 57.91 MB/s)
iocp::inet::socket
117.85 MB/s (avg 117.84 MB/s, lowest 117.70 MB/s)
The main point is that in both directions iocp saturates the 1G network,
while TCL does not.
R'
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)