PHP конструктор SoapClient чрезвычайно медленный


Я пытаюсь провести некоторые тесты на API SOAP и испытываю чрезвычайно медленное время выполнения. Я немного покопался и обнаружил, что для выполнения конструктора SoapClient требуется вечность. Я также попытался использовать для этого прокси-сервер, чтобы узнать, является ли это результатом http-запроса, но этот запрос выполняется относительно быстро.. после запроса он задерживается примерно на 30 секунд.

Вот скриншот kcachegrind для справки:

kcachegrind

И вот Запрос WSDL в прокси-сервере Чарльза:

charles proxy

Об этой же проблеме также сообщалось пару месяцев назад здесь:

PHP: конструктор SoapClient очень медленный (занимает 3 минуты)

Но он не получил ответа.

Любые предложения будут весьма признательны.

Изменить:

Часть кода, в которой инициируется SoapClient (это часть набора инструментов PHP NetSuite)

        $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

                                    )

    );
Author: Community, 2011-09-22

1 answers

Используете ли вы несколько пользователей? Я получал 3-20-минутные задержки в одной и той же строке кода, которая, как оказалось, была связана с несколькими пользователями, вызывающими получение нескольких копий wsdl. http://www.ozonesolutions.com/programming/2011/05/nsclient-login-time/

 4
Author: Daniel, 2011-09-26 13:01:02