gpt4 book ai didi

performance - symfony 性能问题

转载 作者:行者123 更新时间:2023-12-01 09:01:49 25 4
gpt4 key购买 nike

我正在使用 symfony 2.8.12 从事 2 个不同的项目并遇到相同的问题:性能。

加载时间太长(不是所有时间,但大部分时间),当我查看分析器时,总是有一个“有罪的组件”:
它可以是防火墙、 Controller 、配置文件监听器、内核响应......执行时间为几秒(有时超过 10 秒)。

example case
example case 2

在不同的线程中读取我尝试将 db 设置为修复 ip(以防它是 dns 查找问题),
修改了 php.ini 中的一些参数,但没有任何改变。这发生在我的本地和远程环境中,它甚至启用了 PHP 加速和 OPCache。

我对我的代码没有做任何特别的事情,即使我在“hello world”页面上呆了很长时间,这有点令人沮丧:)

最佳答案

发生这种情况是因为 symfony 甚至在开始打印“Hello world”之前就有数千个文件要读取。事实上,你的硬盘对 symfony 的效率影响最大。幸运的是,只需几个简单的步骤即可达到令人满意的水平。

  • PHP.ini:
    将这两个参数设置为比默认值高得多的值,即realpath_cache_size = 4096krealpath_cache_ttl = 7200
  • 转储 Composer 自动加载:composer dump-autoload --optimize - 这将创建带有加载类的转储文件
  • 我不知道你如何使用 opcache,但我鼓励你安装 apcu 模块。之后在 symfony 中使用元数据缓存 config_prod.yml :
    doctrine:orm:    metadata_cache_driver: apc    result_cache_driver: apc
  • Your web/app.php should look have some additional lines comparing to regular one:

    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);

  • 其他但也很重要的:
  • 使用具有显着效率提升的 PHP 7,
  • 将 PHP 与 FPM(FastCGI 进程管理器)一起使用
  • 使用 No SQL 方案缓存查询,即 Redis、Elasticsearch
  • 禁用 xdebug - 确保分析器没有显示您使用它。

  • 事实上,这个列表很长,但在最常见的情况下,前 4 点加上第 8 点可以解决问题。
    我希望它会有所帮助。

    关于performance - symfony 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40650015/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com