我知道在WCF中TCP比HTTP更快,但我很想知道它有多快。我的一个大型应用程序使用HTTP存在性能问题,我正在考虑是否将其转移到netTcp可以获得足够的性能提升以使投资值得。
有人知道netTCP与Http绑定相比发送的数据量差异吗?
我知道在WCF中TCP比HTTP更快,但我很想知道它有多快。我的一个大型应用程序使用HTTP存在性能问题,我正在考虑是否将其转移到netTcp可以获得足够的性能提升以使投资值得。
有人知道netTCP与Http绑定相比发送的数据量差异吗?
到目前为止,有很多答案但没有具体数据。
微软制作了一个测试,精确地衡量了您所问的内容 - HTTP和TCP在WCF服务中的性能(吞吐量)差异。(该测试未考虑包大小!)
这表明,在这个测试中的消息中,TCP /二进制提供了近2倍的HTTP / xml吞吐量。此测试的瓶颈是服务器CPU,而不是网络。您的结果会因为您的消息更复杂或更简单,您的网络限制更多或更少,以及您的应用程序代码更或更少需要CPU而有所不同。但这给了您一个想法。
实际上,Stocktrader基准测试是一项竞争性的事情,比较了运行在Windows Server上的WCF与运行在Linux上的WebSphere之间的性能。但作为其中的一部分,微软还比较了使用HTTP和使用TCP的WCF性能。
这并不是那么简单。HTTP、TCP和其他传输选项除了速度之外还有其他平衡的选项。可靠性取决于应用程序实际执行的内容,对应用程序的稳定性起着重要作用。不要只是翻转协议并运行你的程序几次,然后认为这是一个良好的测试。阅读有关协议的信息,并根据你的需求权衡各种选项。最好在合格的网络管理员的帮助下运行一些程序、负载、性能和网络测试。
更新:由于你更改了问题,我还应该指出,你需要找出导致性能损失的原因,而不是测量理论包大小。就像其他人说的那样,运行测试。
我认为,WCF 最昂贵的部分是序列化。与此相比,Web 服务器堆栈的开销约为 5-10%,而 TCP 传输可以消除这种开销。问题是,您是否需要 Web 服务器的附加优势。
做一些测试!这取决于您的网络以及您的服务实际上正在执行什么操作。
通常情况下会更快,因为TCP连接位于较低的层次,并且没有在打开连接后创建新请求的开销。
netTcpBinding
与什么进行比较? - Darin Dimitrov