yau*_*ros 1 performance symfony
我正在使用symfony 2.8.12在2个不同的项目中工作并遇到同样的问题:性能.
加载时间太长(不是所有时间,但大部分时间),当我看到探查器时,总会有一个"有罪的组件":它可以是防火墙,控制器,配置文件监听器,内核响应. ..执行时间为几秒钟(有时长于10秒).
在不同的线程中读取我试图将db设置为修复ip(如果它是一个dns查找问题),修改了php.ini中的一些参数但没有改变.这在我的本地和远程环境中都很重要,它甚至启用了PHP加速和OPCache.
我对我的代码没有做任何特别的事情,即使我在"你好世界"的页面中长时间玩,这有点令人沮丧:)
Grz*_*uze 11
发生这种情况是因为symfony在开始打印"Hello world"之前有数千个文件需要阅读.实际上,您的硬盘驱动器对symfony的效率影响最大.幸运的是,实现一些令人满意的水平几乎没有简单的步骤.
realpath_cache_size = 4096krealpath_cache_ttl = 7200composer dump-autoload --optimize- 这会创建带有已加载类的转储文件config_prod.yml:
doctrine:
orm:
metadata_cache_driver: apc
result_cache_driver: apc
您的web/app.php看起来应该有一些额外的行与常规行相比:
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\ClassLoader\ApcClassLoader;
$loader = require __DIR__.'/../app/autoload.php';
include_once __DIR__.'/../app/bootstrap.php.cache';
$apcLoader = new ApcClassLoader(md5($_SERVER['HTTP_HOST']), $loader);
$loader->unregister();
$apcLoader->register(true);
require_once __DIR__.'/../app/AppCache.php';
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
$kernel = new AppCache($kernel);
Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
Run Code Online (Sandbox Code Playgroud)其他但也非常重要:
实际上这个列表很长,但是在最常见的情况下,前4点加上第8点就可以了.我希望它会有所帮助.
| 归档时间: |
|
| 查看次数: |
6515 次 |
| 最近记录: |