4

我正在尝试对 SOAP API 进行一些测试,但执行时间非常慢。我做了一些挖掘,发现它是 SoapClient 构造函数,它需要永远执行。我还尝试使用代理来查看它是否是由它产生的 http 查询,但是这个查询的执行速度相对较快。它在查询之后徘徊了大约 30 秒。

这是一个 kcachegrind 截图供参考:

kcachegrind

这是 Charles Proxy 中的 WSDL 查询:

查尔斯代理

几个月前这里也报告了同样的问题:

PHP:SoapClient 构造函数非常慢(需要 3 分钟)

但他没有得到答案。

任何建议将不胜感激。

编辑:

启动 SoapClient 的代码部分(这是 NetSuite PHP 工具包的一部分)

        $this->client = new SoapClient( $host . "/wsdl/v" . $endpoint . "_0/netsuite.wsdl",

                                    array(  "location"              => $host . "/services/NetSuitePort_" . $endpoint,

                                            "trace"                 => 1,

                                            "connection_timeout"    => 5,

                                            "typemap"               => $typemap,

                                            "user_agent"            => "PHP-SOAP/" . phpversion() . " + NetSuite PHP Toolkit " . $version

                                    )

    );
4

1 回答 1

4

您是否使用多个用户?我在同一行代码上出现了 3-20 分钟的延迟,结果证明这与多个用户有关,导致获取 wsdl 的多个副本。 http://www.ozonesolutions.com/programming/2011/05/nsclient-login-time/

于 2011-09-26T13:01:02.603 回答