Улучшение Composer \ Autoload \ includeFile в Symfony

Я провел тест Blackfire на моем проекте Symfony 2.8, и он показывает, что большую часть времени (более 50%) используется 435 вызовами Composer \ Autoload \ includeFile

Любые предложения, как улучшить это?
я использую php composer.phar dump-autoload --optimize после очищаю кеш для прод.

Я использую APC для метаданных и кеш запросов для доктрины, и мой файл app.php выглядит так:

<?php

use Symfony\Component\HttpFoundation\Request;

/**
* @var Composer\Autoload\ClassLoader
*/
$loader = require __DIR__.'/../app/autoload.php';
include_once __DIR__.'/../app/bootstrap.php.cache';

// Enable APC for autoloading to improve performance.
// You should change the ApcClassLoader first argument to a unique prefix
// in order to prevent cache key conflicts with other applications
// also using APC.
/*
$apcLoader = new Symfony\Component\ClassLoader\ApcClassLoader(sha1(__FILE__), $loader);
$loader->unregister();
$apcLoader->register(true);
*/

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);

// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
//Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

0

Решение

Эта функция выглядит так:

function includeFile($file)
{
include $file;
}

Так что это не проблема с самим Composer. Здесь нечего оптимизировать. Вы просто включаете много файлов.

В любом случае, присмотритесь app.php,

Во-первых, вы написали Я использую APC (…), а затем вставил фрагмент кода, содержащий это:

// Enable APC for autoloading to improve performance.
// You should change the ApcClassLoader first argument to a unique prefix
// in order to prevent cache key conflicts with other applications
// also using APC.
/*
$apcLoader = new Symfony\Component\ClassLoader\ApcClassLoader(sha1(__FILE__), $loader);
$loader->unregister();
$apcLoader->register(true);
*/

Я бы предложил следовать этой подсказке и раскомментировать эти несколько строк кода.

Также возможна оптимизация конфигурации APC.

1

Другие решения

Других решений пока нет …