SOAP API에서 몇 가지 테스트를 수행하려고하는데 실행 시간이 매우 느립니다. 일부 파고를 해본 결과 영원히 실행되는 SoapClient 생성자라는 것을 알게되었습니다. 또한 그것으로 인해 결과가 http 쿼리가 있는지 보려면 프록시를 사용하여 시도했지만이 쿼리는 상대적으로 빠르게 실행됩니다. 약 30 초 동안 머무르는 쿼리 이후입니다. 여기 PHP SoapClient 생성자가 매우 느림
은 참조를 위해 kcachegrind 스크린 샷입니다 :그리고 여기에 찰스 프록시에서 WSDL 쿼리의이 같은 문제는 몇 달 전에보고 된 바있다
여기 :
PHP: SoapClient constructor is very slow (takes 3 minutes)
그러나 그는 대답을 얻지 못했습니다.
모든 의견을 많이 주시면 감사하겠습니다.
편집 :
SoapClient이 시작되는 코드 부분
$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
)
);
스크립트를 다시 실행하고 wsdl 파일이 이미 캐시에 있으면 어떻게됩니까? 또한 로컬로 저장된 wsdl 파일을 사용하고 스크립트 실행 시간을 측정하려 했습니까? – Zyava
WSDL 캐싱을 사용하지 않아도 놀았습니다. 또한 내가 말했듯이, Charles Proxy에서 발견 한 것에 기반하여 WSDL이 요청되고 리턴 된 후에 hangup이 발생하는 것처럼 보입니다. – Naatan
soap.wsdl_cache_ttl 옵션을 확인하십시오. 또한 일반 http를 통해 WSDL을 사용할 수 있습니까? 어쩌면 SSL 레이어가 당신 편에서 느려지는 원인 일 것입니다. –