• Pieter Hintjens's avatar
    Problem: Windows 7 TCP slow start · 54e2e2a7
    Pieter Hintjens authored
    See issue #1608.
    
    This is an old issue with Windows 7. The effect is that we see a latency
    ramp on the first 500 messages.
    
    * The ramp is unaffected by message size.
    * Sleeping up to 100msec between sends has no effect except to switch
        off ZeroMQ batching so making the ramp more visible.
    * After 500 messages, latency falls back down to ~10-40 usec.
    * Over inproc:// the ramp happens when we use the signaler class.
    * Client-server over inproc:// does not show the ramp.
    * Client-server over tcp:// shows a similar ramp.
    
    We know that the signaller is using TCP on Windows. We can 'prime' the
    connection by doing 500 dummy sends. This potentially causes new sockets
    to be delayed on creation, which is not a good solution.
    
    Note that the signaller sends zero-byte messages. This may also be
    confusing TCP.
    
    Solution: flood the receive buffer when creating a new FD pair; send a
    1M buffer and discard it.
    
    Fixes #1608
    54e2e2a7
Name
Last commit
Last update
builds Loading commit data...
doc Loading commit data...
include Loading commit data...
packaging/nuget Loading commit data...
perf Loading commit data...
src Loading commit data...
tests Loading commit data...
tools Loading commit data...
tweetnacl Loading commit data...
.gitignore Loading commit data...
.hgeol Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
CMakeLists.txt Loading commit data...
COPYING Loading commit data...
COPYING.LESSER Loading commit data...
Dockerfile Loading commit data...
FindSodium.cmake Loading commit data...
INSTALL Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README.cygwin.md Loading commit data...
README.md Loading commit data...
acinclude.m4 Loading commit data...
appveyor.yml Loading commit data...
autogen.sh Loading commit data...
branding.bmp Loading commit data...
ci_build.sh Loading commit data...
configure.ac Loading commit data...
installer.ico Loading commit data...
version.sh Loading commit data...