Zend Rest работает медленно на сервере - PullRequest
0 голосов
/ 15 октября 2010

Я развернул проект на промежуточном сервере и столкнулся с проблемами, связанными с Zend_Rest.Я создал простой тестовый сервис, который должен возвращать «hello world» в вызывающем скрипте.Звонок займет ок.4 сек до финиша.Это очень медленно, учитывая простую задачу.Есть предложения по оптимизации?

Вот некоторые фрагменты кода:

// $ url - это соединение с контроллером результатов

$ client = new Zend_Rest_Client ($ url);$ response = $ client-> printHelloWorld () -> post ();echo $ response-> printHelloWorld-> response;

Контроллер сервера имеет:

public function getAction()
{
    $server = new Zend_Rest_Server();
    $server->setClass('Webservice_User');
    $server->handle();
}

Ответы [ 3 ]

0 голосов
/ 21 октября 2010

на вашем сервере:

  1. не писать сервер на контроллере. запишите это в index.php / другой файл
  2. используйте простой загрузчик
  3. не включает неважный класс библиотеки Zend

ex (index.php):

set_include_path(
    implode(PATH_SEPARATOR, array(
        realpath(APPLICATION_PATH . '/../library'),
        get_include_path(),
)));

require_once 'Zend/Application.php';

$application = new Zend_Application(
     APPLICATION_ENV,
     APPLICATION_PATH . '/configs/application.ini'    
);

$application->bootstrap();    

$server = new Zend_Rest_Server();
$server->setClass('Webservice_User');
$server->handle();
0 голосов
/ 22 октября 2010

После долгих исследований, я думаю, я не буду использовать Zend Rest для приложения. Примеры Zend_Rest в Интернете имеют реализацию RPC, которая действительно тяжелая из-за процесса отражения. Я был в состоянии бросить это больше, но решил, что веб-сервис не правильный путь для специального процесса, который я делаю.

0 голосов
/ 20 октября 2010
  1. Установите APC или любой другой PHP-ускоритель, Zend действительно тяжелый
  2. Настольный контроллер сервера отдельно (ab -c 10 -t 10 http://sdfklsdf) для изоляции проблемы на сервере / клиенте.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...