我在C#中实现了HTTP服务器.使用ab我发现了一个奇怪的性能问题.保持活动关闭时,每个请求花费5毫秒,而保持活动启动时则为40毫秒!
测试页生成单个字节[],使用单个套接字作为回复发送.发送调用.
原因是我可以告诉Nrab在TCP堆栈中使用的算法.
到目前为止,我在每个服务的HTTP请求的末尾使用NoDelay属性.
socket.NoDelay = true;
socket.NoDelay = false;
Run Code Online (Sandbox Code Playgroud)
哪个解决了现在的问题.但我没有备份我的发现的文件.
这是在linux/mono系统上测试的.
有没有标准的方法来刷新TCP连接?
这个答案正在解决同样的问题.这里的不同之处在于我只想暂时禁用该算法.