Я использую ZendFramework2 и Doctrine для запуска моего проекта. Мой процессор демонстрирует высокий уровень использования в запросах httpd
. Я включил opcache
для filecaching и memcache
для Doctrine.
Любая идея, почему она может иметь среднюю нагрузку около 5.0? Я помещал die('test1')
внутри onBootstrap
из ZendFramework2 один раз, а в другое время я ставил die('test')
раньше.
die('test2')
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
Моя скамья Apache показывает, что когда фреймворк загружается без какого-либо подключения к базе данных или идет на любой контроллер, он в 5 раз медленнее. Почему zf2 действует так и что может быть возможным решением для нормализации его поведения?
[вопрос обновления]
Я профилировал с помощью Xdebug и Webgrind и обнаружил, что процессы, например, при загрузке, имеют высокий процент
(Приложение\Модуль- > onBootstrap)
на bootstrap У меня есть эта строка кодов
//...
$eventManager->attach(MvcEvent::EVENT_ROUTE, function($e) use ($blacklistForNormalUser, $auth) {
$match = $e->getRouteMatch();
// No route match, this is a 404
if (!$match instanceof RouteMatch) {
return;
}
// Route is whitelisted
$name = $match->getMatchedRouteName();
if (!in_array($name, $blacklistForNormalUser) ) {
return;
}
// User is authenticated
if ($auth->hasIdentity() ) {
return;
}
// Redirect to the user login page, as an example
$router = $e->getRouter();
if(in_array($name, $blacklistForNormalUser)){
$url = $router->assemble(array(), array(
'name' => 'user/login'
));
}
$response = $e->getResponse();
$response->getHeaders()->addHeaderLine('Location', $url);
$response->setStatusCode(302);
return $response;
}, -100);
//...
другая высокая точка
Doctrine\ORM\Mapping\Driver\AnnotationDriver- > loadMetadataForClass