为什么 CakePHP 3 在 Vagrant 盒子上自动加载 类 这么慢?
Why is CakePHP 3 so slow at autoloading classes on a Vagrant box?
设置
- Vagrant 盒子(2GB 内存)
- Apache/2.2.22 (Ubuntu)
- PHP 5.4.38-1+deb.sury.org~precise+2 (cli)(内置:2015 年 2 月 20 日 12:16:47)
- 蛋糕PHP 3
我刚刚用 composer 安装了一个新的 CakePHP 3,并且使用非常基本的默认主页,我注意到该页面加载大约需要 4 到 5 秒。这是基准测试(kitchen.com
是服务器别名):
Chrome 开发工具
PhpStorm + Xdebug
甚至composer.phar dumpautoload -o
都没有改变。
有时一些 REST 调用(返回小 json)可能会达到 ~12 秒,因为自动加载和 php_sapl_name:
Ajax REST 调用
- 请求URL:http://kitchen.com/admin/kitchen/settings.json
- 请求方法:GET
- 回复:
{
"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
这是 CakePHP3 上的常见错误还是可能来自我的服务器配置?
您应该确保您启用了操作码缓存。通常 PHP 如果没有操作码缓存,性能会受到很大影响。
还要确保您的机器在 IO 性能方面不受限制。因为 PHP 应用程序需要在每次请求时加载大量文件,所以磁盘 IO 很重要。
我会说你的结果与典型结果相去甚远。在我 2 岁的旧笔记本电脑上,我通常会在 <150 毫秒内从 CakePHP.
收到烘焙代码的响应
编辑:我重新阅读了您的问题并注意到您正在使用 VM。共享 VM 文件系统是出了名的慢。如果您从主机共享到来宾 OS,看看是否可以通过将代码移出共享文件系统来获得更好的性能。
设置
- Vagrant 盒子(2GB 内存)
- Apache/2.2.22 (Ubuntu)
- PHP 5.4.38-1+deb.sury.org~precise+2 (cli)(内置:2015 年 2 月 20 日 12:16:47)
- 蛋糕PHP 3
我刚刚用 composer 安装了一个新的 CakePHP 3,并且使用非常基本的默认主页,我注意到该页面加载大约需要 4 到 5 秒。这是基准测试(kitchen.com
是服务器别名):
Chrome 开发工具
PhpStorm + Xdebug
甚至composer.phar dumpautoload -o
都没有改变。
有时一些 REST 调用(返回小 json)可能会达到 ~12 秒,因为自动加载和 php_sapl_name:
Ajax REST 调用
- 请求URL:http://kitchen.com/admin/kitchen/settings.json
- 请求方法:GET
- 回复:
{
"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
这是 CakePHP3 上的常见错误还是可能来自我的服务器配置?
您应该确保您启用了操作码缓存。通常 PHP 如果没有操作码缓存,性能会受到很大影响。
还要确保您的机器在 IO 性能方面不受限制。因为 PHP 应用程序需要在每次请求时加载大量文件,所以磁盘 IO 很重要。
我会说你的结果与典型结果相去甚远。在我 2 岁的旧笔记本电脑上,我通常会在 <150 毫秒内从 CakePHP.
收到烘焙代码的响应编辑:我重新阅读了您的问题并注意到您正在使用 VM。共享 VM 文件系统是出了名的慢。如果您从主机共享到来宾 OS,看看是否可以通过将代码移出共享文件系统来获得更好的性能。