SOAP方法调用速度极慢

时间:2013-04-16 08:19:26

标签: php performance soap

我正在开发一个严重依赖SOAP调用的项目。问题是加载时间非常长。

$client = new SoapClient("https://link.to.wsdl");
$client = $client->GetDestination(array(
"parameter1" => $param1,
"parameter2" => $param2
));

现在我做了一些时间,代码的第一部分(启动一个对象$ client)大约需要2秒,非常可以接受。但是当调用getDestination时,它会增加大约10秒的加载时间。这是我调用的每个get或set方法。

此代码在php 5上运行。这些方法是用.net 4.x

编写的

有谁知道这是为什么以及如何解决?

编辑:ping统计信息 传输10个数据包,10个数据包接收,0.0%丢包 往返min / avg / max / stddev = 1.086 / 2.320 / 3.624 / 1.157 ms

3 个答案:

答案 0 :(得分:3)

首先,您应该使用soap.wsdl_cache_enabled ini值或使用SoapClient构造函数的$options参数启用WSDL缓存。这会阻止PHP一次又一次地下载wsdl并加速构造函数(2秒也很长)

为了加快方法调用本身,我需要更多信息。您是否可以使用wireshark来检查应用与soap服务器之间的网络通信?

答案 1 :(得分:3)

我在与我的代码在同一台机器上连接到SOAP服务时遇到了类似的问题。使用http://127.0.0.1/代替http://localhost/作为网址解决了问题。

答案 2 :(得分:0)