为什么CakePHP 3在Vagrant盒子上自动加载类的速度如此之慢?

时间:2015-04-09 22:51:41

标签: cakephp vagrant cakephp-3.0 autoload

设置

  • Vagrant box(2gb内存)
  • Apache / 2.2.22(Ubuntu)
  • PHP 5.4.38-1 + deb.sury.org~sensision + 2(cli)(建于2015年2月20日12:16:47)
  • CakePHP 3

我刚刚用作曲家安装了一个新的CakePHP 3,并且在非常基本的默认主页上,我注意到该页面需要加载4s~5s。以下是基准测试(kitchen.com是服务器别名):

Chrome开发者工具

enter image description here

PhpStorm + Xdebug

enter image description here


即使 composer.phar dumpautoload -o 也没有改变。


有时一些REST调用(返回小json)可能会达到~12秒因为自动加载和php_sapl_name:

Ajax REST调用

{
    "settings": {
        "sitename": "Site settings",
        "desciption": "Lorem ipsum"
    }
}
  • 控制器操作:
public function index() {
    $this->set('settings', ['sitename' => 'Site settings', 'desciption' => 'Lorem ipsum']);
    $this->set('_serialize', ['settings']);
}

Chrome开发工具和PhpStorm + Xdebug

enter image description here

enter image description here


那么它是CakePHP 3上的常见错误还是来自我的服务器配置?

1 个答案:

答案 0 :(得分:4)

您应该确保启用了操作码缓存。通常,没有操作码缓存,PHP性能会受到很大影响。

还要确保您的机器在IO性能方面不受限制。由于PHP应用程序需要在每个请求上加载大量文件,因此磁盘IO很重要。

我会说你的结果与典型相差甚远。我通常会从CakePHP的2岁笔记本电脑上的<150ms的烘焙代码中获得回复。

编辑:我重新阅读了您的问题并注意到您正在使用VM。共享VM文件系统非常慢。如果您要从主机共享到来宾操作系统,请查看是否通过将代码移出共享文件系统来获得更好的性能。