Php symfony2.8优化:我还需要使用APCClassLoader吗?
我需要在速度方面优化我的symfony。托管服务器正在运行PHP7.x.x,并且已启用opcache<代码>apc_扩展已禁用,但如果确实需要,我可以请求启用它 我现在所做的是:Php symfony2.8优化:我还需要使用APCClassLoader吗?,php,symfony,composer-php,symfony-2.8,Php,Symfony,Composer Php,Symfony 2.8,我需要在速度方面优化我的symfony。托管服务器正在运行PHP7.x.x,并且已启用opcacheapc_扩展已禁用,但如果确实需要,我可以请求启用它 我现在所做的是: composer dump-autoload --optimize 无论何时部署我的应用程序。这样,应用程序应该已经拥有了所需的所有映射,而不必遍历文件夹(对吗?)。我想知道如果autoload_classmap.php已经很好地更新,那么apclassloader是否可以提高我的性能 以下是我的app.php第一行: us
composer dump-autoload --optimize
无论何时部署我的应用程序。这样,应用程序应该已经拥有了所需的所有映射,而不必遍历文件夹(对吗?)。我想知道如果autoload_classmap.php
已经很好地更新,那么apclassloader
是否可以提高我的性能
以下是我的app.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();
长问题短:如果
autoload\u classmap.php
已经很好地更新,那么启用apclassloader
是否可以提高我的性能?请阅读我的回答:
您必须评估转储应用程序中所有类的类映射是否会实际提高或降低速度。如果类映射转储中的类太多,那么最终会将一个巨大的数组从操作码缓存移动到内存中,这对操作码缓存(它需要一些内存,这可能会踢出其他代码)和运行任何脚本所需的内存量都是有害的
作为一般规则:如果你优化了,在做某件事之前,然后在做某件事之后,衡量一下你想优化的东西,看看事情是否有所改善
还要注意的是,“速度方面的优化”并不是对您想要改进的内容的非常精确的描述。是单个请求的响应时间吗?还是服务器在高负载下的响应时间?为了找出时间花在哪里,您是否首先对应用程序进行了分析
在“优化”自动加载后,您提出了一个非常具体的问题,涉及到一个与APC相关的可能解决方案,以改进“某些东西”,但没有告诉我们这是否有效-这一切听起来都像是您没有正确地测量和分析您的应用程序,而只是使用您遇到的任何承诺“优化”的东西.请在这里阅读我的答案: 您必须评估转储应用程序中所有类的类映射是否会实际提高或降低速度。如果类映射转储中的类太多,那么最终会将一个巨大的数组从操作码缓存移动到内存中,这对操作码缓存(它需要一些内存,这可能会踢出其他代码)和运行任何脚本所需的内存量都是有害的 作为一般规则:如果你优化了,在做某件事之前,然后在做某件事之后,衡量一下你想优化的东西,看看事情是否有所改善 还要注意的是,“速度方面的优化”并不是对您想要改进的内容的非常精确的描述。是单个请求的响应时间吗?还是服务器在高负载下的响应时间?为了找出时间花在哪里,您是否首先对应用程序进行了分析 在“优化”自动加载后,您提出了一个非常具体的问题,即与APC相关的一个可能的解决方案,以改进“某些东西”,但没有告诉我们这是否有效-这一切听起来都像是您没有正确地测量和分析您的应用程序,而只是使用您遇到的任何承诺“优化”的东西