SOAP的性能与XML-RPC或REST(Performance of SOAP vs. XML-R

2019-06-24 14:06发布

有关使用XML-RPC或REST的解决方案的简单性的参数是容易理解和很难说。

我经常也听到论点,SOAP增加的开销可能显著影响使用的带宽,甚至可能延迟。 我想看到的量化影响测试的结果。 任何一个知道这些信息的良好来源?

Answer 1:

有已经对此,你可能会发现信息做了一些研究。 请参阅以下内容:

  • SO:放心VS香皂性能
  • Q&A:SOAP和REST 101
  • 更新的SQL Server数据服务:罗斯文REST和SOAP上传

也有关于在该主题的(有点过时)有趣的表现谈话MSDN论坛 。

总之 - 大多数的这些来源似乎都同意,SOAP和REST大致为通用数据相同的性能。 一些结果,但是,似乎表明二进制数据,REST实际上可能是少高性能。 见我挂了更详细的关于这个论坛的链接。



Answer 2:

在SOAP与REST的速度主要冲击不会与线速做,但缓冲能力。 REST建议使用网络的语义,而不是通过XML在它试图隧道,所以RESTful Web服务的设计,一般正确使用缓存头,所以他们与像缓存代理,甚至本地浏览器缓存网页的标准的基础设施运行良好。 此外,使用网络的语义意味着,之类的东西ETag的和自动zip压缩是很好理解的方式来提高效率。

..和现在你说你想要的基准。 那么,与谷歌的帮助下,我找到一个人 ,其测试显示REST是4-6x比SOAP和另一快纸也有利于REST。



Answer 3:

REST作为协议没有定义任何形式的消息信封,而SOAP确实有这个标准。

为此,它的有些简单化尝试和比较这两种,它们是苹果和橘子。

这就是说,一个SOAP信封(减去数据)只有几K,所以不应该有提供您检索通过SOAP和REST的序列化对象的任何速度显着差异。



Answer 4:

SOAP和使用XML一般涨大邮件颇有几分任何其他的协议 - 这可能是也可能不是根据上下文的一个问题。

像JSON的东西会更紧凑,也许更快地连载/ deserialise - 但不要只使用它这个原因。 做你觉得有意义的时间和改变它,如果这是一个问题。

它采用HTTP一般(除非是重用HTTP 1.1保持活动连接,其中许多实现不)任何启动对每个请求新的TCP连接; 这是相当糟糕,尤其是在高延迟链接。 HTTPS是糟糕得多。 如果你从一个发送大量请求短到一个接收器,考虑如何可以借此开销了。

使用HTTP的任何类型的RPC(不论SOAP或别的东西)总是会招致该开销。 其他RPC协议通常允许您保持连接打开。



Answer 5:

扩大的“pjz”的回答。

如果你得到了很多信息的(获得*呼叫类型)基于SOAP操作,目前还没有办法可以缓存。 但是,如果你要实现使用REST这些相同的操作,有一种可能性,即数据(取决于您的业务上下文)可以缓存,如上所述。 因为SOAP使用POST其业务,它不能缓存在服务器端的信息。



Answer 6:

SOAP是绝对慢。 有效载荷是显著更大,这是更慢的装配,运输,解析,验证和处理。



Answer 7:

我不知道任何答案的标杆问题的,但是,我知道的有关SOAP格式是肯定的,它确实有开销,但开销不按要求增加:如果你有一个元素发送到Web服务,你的开销+一个元素建设,如果你有发送到Web服务1000元,你的开销+ 1000元建设。 作为XML请求格式化的特定操作时的开销,但在该请求每一个个体参数元素被格式化相同。

如果你坚持到数据(比如500元)的可重复的,短时间,速度应该是acceptible。



Answer 8:

我想这里的主要问题是如何与RPC SOAP进行比较。

他们都具有你和原始/复杂的数据类型,你回来真的不知道这一切是如何被处理的下方运行存根对象服务通信的抽象相同的方法。

我总是喜欢(JSON-)因为RPC

  • 它是轻量级
  • 有许多伟大的实现为所有的编程语言在那里
  • 这是简单的学习/使用/创建
  • 它的速度快(尤其是JSON)

虽然也有考虑,您应该使用SOAP,也就是说,如果你需要的命名参数而不是依靠他们的正确顺序

一些更多的细节,你从这个计算器让问题



文章来源: Performance of SOAP vs. XML-RPC or REST