Symfony 项目在本地执行缓慢
Slow execution of Symfony project locally
我有这个问题很久了,但是显示我的 Symfony 2 项目的简单页面越来越慢。
这是我的开发环境:
- Wampserver 2.2 与 PHP 5.3.13、MySQL 5.5.24 和 Apache 2.2.22
- Symfony 2.7
- Netbeans 8.1
我真的不确定它来自 Symfony,尽管它在 symfony 项目中更明显(显示一个页面需要 4-5 分钟)。
即使从 wampserver 调用 phpmyadmin 也很长。
内存、CPU 或磁盘都没有问题。使用资源管理器检查,似乎一切正常。
那些是 Apache 日志。我有公里 :
PHP Fatal error: Maximum execution time of 90 seconds exceeded in C:\wamp\www\MyProject\app\cache\dev\classes.php on line 5270, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:28 2016] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:28 2016] [error] [client 127.0.0.1] PHP 1. Monolog\Handler\AbstractHandler->__destruct() C:\wamp\www\MyProject\app\cache\dev\classes.php:0, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:30 2016] [error] [client 127.0.0.1] PHP Fatal error: Maximum execution time of 90 seconds exceeded in C:\wamp\www\MyProject\app\cache\dev\classes.php on line 5270, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:30 2016] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:30 2016] [error] [client 127.0.0.1] PHP 1. Monolog\Handler\AbstractHandler->__destruct() C:\wamp\www\MyProject\app\cache\dev\classes.php:0, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:32 2016] [error] [client 127.0.0.1] PHP Fatal error: Maximum execution time of 90 seconds exceeded in C:\wamp\www\MyProject\app\cache\dev\classes.php on line 5270, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:32 2016] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:32 2016] [error] [client 127.0.0.1] PHP 1. Monolog\Handler\AbstractHandler->__destruct() C:\wamp\www\MyProject\app\cache\dev\classes.php:0, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:13:04 2016] [error] [client 127.0.0.1] PHP Fatal error: Maximum execution time of 90 seconds exceeded in C:\wamp\www\MyProject\app\cache\dev\classes.php on line 5270, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
有人知道我能做什么吗...我已经重新安装了几次我的软件,但它没有改变任何东西
感谢您的想法和任何帮助。
我做了什么来加快我本地机器上开发模式下的 symfony 执行时间:
- 安装PHP7.*,确实提高了性能。
- 已启用与 PHP
捆绑的 Opcache PHP 扩展
- 将
realpath_cache_size
设置为4048k
- 在 doctrine 配置中安装 redis 并启用元数据缓存。请记住,每次 add/change 实体文件都必须手动清除 redis 缓存。这是值得的,因为它在开发模式下将加载时间增加了大约 70-100 毫秒。
- 执行
composer dump-autoload --optimize
创建class地图。
在优化之前,我在开发模式下的加载时间约为 700-1000 毫秒,现在是 250-350 毫秒。
当然,数字在您的机器上会有所不同。
根据问题中的评论,我们得出的答案是,主要原因是 XDebug,它通常会对 PHP 性能产生重大影响。
您在命令中写道,Symfony 的分析器现在显示 3-6 秒,但实际上需要更多时间。这意味着 PHP 本身可能不是唯一的问题。
我建议查看浏览器的开发人员工具(Firebug 等,具体取决于您使用的浏览器)并检查“网络”选项卡中的时间线。也许它会给你进一步的信息去哪里寻找原因。
对于我的本地计算机,执行 Symfony 通常需要 PHP 大约一秒(在开发环境中;并且取决于缓存状态和它是什么页面)。
我有这个问题很久了,但是显示我的 Symfony 2 项目的简单页面越来越慢。
这是我的开发环境:
- Wampserver 2.2 与 PHP 5.3.13、MySQL 5.5.24 和 Apache 2.2.22
- Symfony 2.7
- Netbeans 8.1
我真的不确定它来自 Symfony,尽管它在 symfony 项目中更明显(显示一个页面需要 4-5 分钟)。
即使从 wampserver 调用 phpmyadmin 也很长。
内存、CPU 或磁盘都没有问题。使用资源管理器检查,似乎一切正常。
那些是 Apache 日志。我有公里 :
PHP Fatal error: Maximum execution time of 90 seconds exceeded in C:\wamp\www\MyProject\app\cache\dev\classes.php on line 5270, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:28 2016] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:28 2016] [error] [client 127.0.0.1] PHP 1. Monolog\Handler\AbstractHandler->__destruct() C:\wamp\www\MyProject\app\cache\dev\classes.php:0, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
[Thu May 12 14:11:30 2016] [error] [client 127.0.0.1] PHP Fatal error: Maximum execution time of 90 seconds exceeded in C:\wamp\www\MyProject\app\cache\dev\classes.php on line 5270, referer: http://localhost/MyProject/web/app_dev.php/myURL?init [Thu May 12 14:11:30 2016] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://localhost/MyProject/web/app_dev.php/myURL?init [Thu May 12 14:11:30 2016] [error] [client 127.0.0.1] PHP 1. Monolog\Handler\AbstractHandler->__destruct() C:\wamp\www\MyProject\app\cache\dev\classes.php:0, referer: http://localhost/MyProject/web/app_dev.php/myURL?init [Thu May 12 14:11:32 2016] [error] [client 127.0.0.1] PHP Fatal error: Maximum execution time of 90 seconds exceeded in C:\wamp\www\MyProject\app\cache\dev\classes.php on line 5270, referer: http://localhost/MyProject/web/app_dev.php/myURL?init [Thu May 12 14:11:32 2016] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://localhost/MyProject/web/app_dev.php/myURL?init [Thu May 12 14:11:32 2016] [error] [client 127.0.0.1] PHP 1. Monolog\Handler\AbstractHandler->__destruct() C:\wamp\www\MyProject\app\cache\dev\classes.php:0, referer: http://localhost/MyProject/web/app_dev.php/myURL?init [Thu May 12 14:13:04 2016] [error] [client 127.0.0.1] PHP Fatal error: Maximum execution time of 90 seconds exceeded in C:\wamp\www\MyProject\app\cache\dev\classes.php on line 5270, referer: http://localhost/MyProject/web/app_dev.php/myURL?init
有人知道我能做什么吗...我已经重新安装了几次我的软件,但它没有改变任何东西
感谢您的想法和任何帮助。
我做了什么来加快我本地机器上开发模式下的 symfony 执行时间:
- 安装PHP7.*,确实提高了性能。
- 已启用与 PHP 捆绑的 Opcache PHP 扩展
- 将
realpath_cache_size
设置为4048k
- 在 doctrine 配置中安装 redis 并启用元数据缓存。请记住,每次 add/change 实体文件都必须手动清除 redis 缓存。这是值得的,因为它在开发模式下将加载时间增加了大约 70-100 毫秒。
- 执行
composer dump-autoload --optimize
创建class地图。
在优化之前,我在开发模式下的加载时间约为 700-1000 毫秒,现在是 250-350 毫秒。
当然,数字在您的机器上会有所不同。
根据问题中的评论,我们得出的答案是,主要原因是 XDebug,它通常会对 PHP 性能产生重大影响。
您在命令中写道,Symfony 的分析器现在显示 3-6 秒,但实际上需要更多时间。这意味着 PHP 本身可能不是唯一的问题。
我建议查看浏览器的开发人员工具(Firebug 等,具体取决于您使用的浏览器)并检查“网络”选项卡中的时间线。也许它会给你进一步的信息去哪里寻找原因。
对于我的本地计算机,执行 Symfony 通常需要 PHP 大约一秒(在开发环境中;并且取决于缓存状态和它是什么页面)。