Sometimes our users ask us how many concurrent file transfers can be initiated simultaneously by one client. The answer deserves a little bit of explanation.
First of all it is important to understand that this article is entirely focused on how to optimize the client side, in fact the server uses I/O completion ports and RTL critical sections to optimize concurrency under heavy load (hundreds or thousands of incoming client connections) and is therefore self-optimized.
The client side, instead, is very different. First of all the client has a GUI (graphical user interface) that needs to be synchronized with the “desktop” of the operating system. Furthermore, on the client side, the concept of “CPU core affinity” becomes very relevant. What is it? Let’s try to provide a simplified explanation… Continue reading