我有一个Winsock客户端,以4MB的块发送1GB数据到Winsock服务器。客户端和服务器应用程序使用构建在Winsock2之上的库并使用IOCP线程。
对于每个4MB传输,服务器会执行一些工作并向客户端发回响应。
客户端使用重叠的套接字IO发送256个这样的4MB请求。
问题:当服务器上的DoWork()
立即返回时,整个过程只需9秒即可完成;但是当DoWork()
需要500毫秒时,整个1GB传输过程需要130秒!
客户端延迟是否应该与服务器延迟成比例?也就是说,如果服务器需要500毫秒来完成它的工作,那么整个过程是否应该在9.5秒内完成?可能导致运行时间不成比例增加的潜在瓶颈是什么?