【问题标题】:Zend Framework 2: Composer\Autoload\includeFile is slowZend Framework 2:Composer\Autoload\includeFile 很慢
【发布时间】:2015-09-15 04:46:05
【问题描述】:

根据 New Relic 事务跟踪器,有时 Composer\Autoload\includeFile 需要大约 318 毫秒来加载我的项目。

我已经从作曲家那里转储了一个类图,但它仍然没有任何区别。

composer.json 需要以下内容:

"require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.4.*",
        "zendframework/zendservice-amazon": "2.*",
        "wisembly/elephant.io": "~3.0",
        "knplabs/github-api": "~1.2"
    }

我的 ZF2 应用程序中只有一个模块。

我的 ZF2 自动加载如何才能更快地执行?

【问题讨论】:

    标签: php zend-framework composer-php autoload


    【解决方案1】:

    请注意,“优化”自动加载并不一定会在每种情况下都产生最佳加载时间。这是一场通过消除文件系统访问来加快速度与通过将更多未使用的内容加载到内存中来减慢速度之间的竞赛。

    Why use a PSR-0 or PSR-4 autoload in composer if classmap is actually faster?

    【讨论】:

      【解决方案2】:

      我们在 New Relic 中调试时遇到了完全相同的问题。最后,我们追踪到文件系统,结果发现我们没有使用操作码缓存,这在高负载下会很痛苦。

      检查您的操作码缓存并尝试调整它的内存设置。这就是我们设法解决的方法。

      【讨论】:

      • 您能否分享一下添加 opcache 在响应时间、使用的 CPU 和平均负载方面的好处?
      • 这对我们的 NFS 存储最有利,我们消除了 cca 1000 NFS req/sec。我们将操作码缓存内存从 64 提高到 256MB,但您可以根据 ZF2 调整它以适应缓存中的最佳文件数量(我们使用的是 Symfony 2)。另一方面,我们还没有看到网络服务器上 CPU/负载平均值的显着变化。
      • 我昨天安装了它。这是我一生中见过的最大的表演技巧。响应时间缩短了 3 倍。 CPU使用率下降了6-9倍。我没有改变它的配置。平均负载也下降了 5 倍。谢谢!
      • 别忘了设置opcache.validate_timestamps=0否则opcache不会给你任何东西。
      • 这篇文章有一些有用的设置 opcache 设置将适用于大多数框架:medium.com/appstract/…
      猜你喜欢
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 2012-07-29
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多