Yesterday I posted a question about SQLite performance issues ( Awful performance in Zend Db PDO_sqlite inserting and updating queries ). After several tests, it seems that the problem only occurs when methods are called through SoapServer (tried both native PHP classes SoapServer, and Zend_Soap_Server).
A test case is a call to 10 methods that use SQLite DB INSERT and UPDATE DB operations.
Here are some examples of how this works:
1. Via the controller - without using a Soap server. localhost: ~ 0.3s, remote server: ~ 0.3s
2. Through the Soap server. 1st call. localhost: ~ 1-2s, remote server: ~ 7s!
3. Through the Soap server. A few calls. localhost: ~ 1-10 s, remote server: ~ 7s
In the third case, this does not concern me, perhaps this is a local server performance problem. The important thing is that it works stably on a remote server.
On the other hand, 7 seconds for the simplest 10 method calls is incredibly long. Obviously, part of these 7 seconds is the connection between the client and the server, as case 1 is omitted, but I don’t think it should be so slow!
For debugging, I register everything, and it seems that the same SQLite methods that are called in case 1 take 0.00x-0.02s, here for ~ 0.15-0.45s.
What could be the problem? Is it a normal thing that it slows down so much when using SOAP? (This is my first soap server project).
EDIT: another important fact of the magazine I found:
-2012-04-26 13: 08: 07.782679 : SoapController. : SoapController:: hadleWSDL. : 18.
-2012-04-26 13: 08: 08.318641 * *
, . 0,5 - . handleWSDL:
$options = array(
'encoding' => 'UTF-8',
'cache_wsdl' => WSDL_CACHE_BOTH,
'uri' =>$this->_WSDL_URI
);
$soap = new Zend_Soap_Server(null, $options);
$soap->setClass('SoapServerFunction');
$soap->setObject(new SoapServerFunction());
$soap->handle();
: SOAP 1 , 1 , , XML.
, , , .
!