Php Symfony 5 TraceableFirewallListener非常慢

Php Symfony 5 TraceableFirewallListener非常慢,php,performance,symfony,symfony-security,symfony5,Php,Performance,Symfony,Symfony Security,Symfony5,我对Symfony比较陌生。我目前正在与Symfony&Docker合作开发一个原型 今天,我通过登录实现了AuthenticationService(如下所示:)。当我现在加载应用程序时,服务器响应时间约为1500毫秒。如果没有此身份验证,响应时间约为70毫秒 我打开了探查器,似乎“TraceableFirewallListener”需要很多时间。 我已经尝试过comman TIPP(更改为prod env,取消调试的标签) 我真的不知道为什么要花这么长时间,但我很确定这不可能是正常的。我也不

我对Symfony比较陌生。我目前正在与Symfony&Docker合作开发一个原型

今天,我通过登录实现了AuthenticationService(如下所示:)。当我现在加载应用程序时,服务器响应时间约为1500毫秒。如果没有此身份验证,响应时间约为70毫秒

我打开了探查器,似乎“TraceableFirewallListener”需要很多时间。 我已经尝试过comman TIPP(更改为prod env,取消调试的标签)

我真的不知道为什么要花这么长时间,但我很确定这不可能是正常的。我也不想从这里()实现“解决方案”,因为这对我来说似乎是一个非常糟糕的做法

我的保安亚姆在下面。如果你还需要什么,请问我,我会帮你的

提前谢谢你的帮助

更新

安装blackfire并找到一些有趣的图表,这可能会有所帮助:


为什么我的响应时间这么长?我该怎么把它缩短呢

结果是,它与验证器本身没有任何关系。Symfony根本无法使用缓存,这导致每次请求都会重新生成/重建LoginFormAuthenticator。在这种情况下,响应时间长可能是因为此服务使用了很多类,并且每个类都被重新创建

对我来说,解决办法是1。将“var”文件夹添加到.dockrignore,以便在生成时不会将目录复制到容器中。其次,我必须删除完整“app”文件夹的挂载(其中包含“var”文件夹和其中的缓存)。别忘了“重新装载”必要的文件夹。我认为这个问题首先发生的原因是,我确实在我的主机上创建了symfony项目,并且认为所有东西都必须在容器中。似乎这导致没有使用缓存的权限

响应时间恢复到约70毫秒

security:
  encoders:
    App\Entity\User:
      algorithm: auto

  providers:
    app_user_provider:
      entity:
        class: App\Entity\User
        property: email
  firewalls:
    dev:
      pattern: ^/(_(profiler|wdt)|css|images|js)/
      security: false
    main:
      anonymous: lazy
      provider: app_user_provider
      guard:
        authenticators:
          - App\Security\LoginFormAuthenticator
      logout:
        path: app_logout

  access_control:
    - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }