作者:Devil灬旋律 | 来源:互联网 | 2024-11-11 19:07
在多线程环境中,IpcChannel的性能表现并未如预期般优于Tcp和Http通道。实际测试结果显示,在IIS6中通过Remoting创建的Ipc通道,其速度比Tcp通道慢了约20倍。本文详细分析了这一现象的原因,并提出了针对性的优化建议,以提升IpcChannel在高并发场景下的性能表现。
网上都说Ipc通道的速度比Tcp、http通道快,也有相关的测试文章。但我在多线程测试中发现Ipc通道比Tcp慢了差不多20多倍,测试方法是在IIS6中创建Remoting通道,用WAS压力测试工具进行测试。IIS6中Web园设置为100个进程,核心请求队列设置为4000,然后打开WAS并设置1000个线程,每个线程2个连接。点击启动。
以下是WAS运行30s后的测试结果,WAS显示时间不准确是由于截图时间没有把握好
IPC通道
TCP通道:
对比可见,IPC通道在多线程状态下比TCP通道慢的太多了。
Tcp服务器端代码:
}
IPC服务器端代码
远程代理类部分代码,
re;
}
}
TCP客户端代码,运行与IIS中
SayHandler(re_OnSay);
sh.SubEventReappear(Identity);
}
IPC客户端代码,运行与IIS中
IpcChannel的
SayHandler(re_OnSay);
sh.SubEventReappear(Identity);
}