Symfony项目在本地执行速度慢

6
我有一个问题已经很长一段时间了,但现在我的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致命错误:在C:\wamp\www\MyProject\app\cache\dev\classes.php的第5270行超过了90秒的最大执行时间,参考者:http://localhost/MyProject/web/app_dev.php/myURL?init。[Thu May 12 14:11:28 2016] [error] [client 127.0.0.1] PHP堆栈跟踪,参考者: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,参考者:http://localhost/MyProject/web/app_dev.php/myURL?init。[Thu May 12 14:11:30 2016] [error] [client 127.0.0.1] PHP致命错误:在C:\wamp\www\MyProject\app\cache\dev\classes.php的第5270行超过了90秒的最大执行时间,参考者:http://localhost/MyProject/web/app_dev.php/myURL?init。[Thu May 12 14:11:30 2016] [error] [client 127.0.0.1] PHP堆栈跟踪,参考者: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,参考者:http://localhost/MyProject/web/app_dev.php/myURL?init。[Thu May 12 14:11:32 2016] [error] [client 127.0.0.1] PHP致命错误:在C:\wamp\www\MyProject\app\cache\dev\classes.php的第5270行超过了90秒的最大执行时间,参考者:http://localhost/MyProject/web/app_dev.php/myURL?init。[Thu May 12 14:11:32 2016] [error] [client 127.0.0.1] PHP堆栈跟踪,参考者: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,参考者:http://localhost/MyProject/web/app_dev.php/myURL?init。[Thu May 12 14:13:04 2016] [error] [client 127.0.0.1] PHP致命错误:在C:\wamp\www\MyProject\app\cache\dev\classes.php的第5270行超过了90秒的最大执行时间,参考者:http://localhost/MyProject/web/app_dev.php/myURL?init

有人知道我能做什么吗...我已经重新安装了我的软件好几次,但仍然没有改变

感谢提供的想法和任何帮助。


你是否已启用了XDebug? - Jakub Matczak
绝对可以使用Netbeans进行调试。 - mlwacosmos
尝试完全禁用XDebug并检查是否有所改善。它不应该使Symfony变得如此缓慢,但值得一试。 - Jakub Matczak
现在,当您成功渲染Symfony页面时,我会检查Symfony分析器中花费了多长时间。 - Jakub Matczak
在Symfony分析器中,我有一个渲染时间为3000毫秒或6000毫秒,但实际上它至少是两倍长...顺便问一下,什么是块调用? - mlwacosmos
显示剩余2条评论
2个回答

8
根据问题下的评论,我们得出的答案是主要原因是XDebug,它通常会对PHP性能产生显著影响。您在命令中写道Symfony的分析工具现在显示3-6秒,但实际上需要更多时间。这意味着,PHP本身可能不是唯一的问题。我建议检查浏览器的开发者工具(Firebug等,取决于您使用的浏览器),并在网络选项卡中检查时间表。也许它会给您进一步的信息来确定原因所在。对于我的本地电脑来说,在开发环境中执行Symfony通常需要大约一秒钟的时间(取决于缓存状态和页面类型)。

我会根据PHP版本提供Xdebug版本的URL。https://xdebug.org/files/ - mlwacosmos
我已经使用这个xdubug工具开发了5年多了。差点让我转向Linux。无法用言语来描述我有多感激你,Jakub! - Fappie.

5
我在本地机器上加速Symfony开发模式执行时间所做的事情如下:
  1. 安装PHP 7.*,它真正提高了性能。
  2. 启用PHP捆绑的Opcache PHP扩展。
  3. realpath_cache_size设置为4048k
  4. 安装Redis并在Doctrine配置中启用元数据缓存。请记住,每次添加/更改实体文件时,必须手动清除Redis缓存,但这值得一试,因为它可以在开发模式下将加载时间提高约70-100ms。
  5. 执行composer dump-autoload --optimize以创建类映射。

在优化之前,我的开发模式负载时间约为700-1000ms,现在则为250-350ms。

当然,你的机器上的数字可能会有所不同。


抱歉,我不能这样做...我理解您的意思,我相信您是正确的,但我在一家大公司工作,我不能决定PHP或其他版本。这是全国性的。 - mlwacosmos
6
但是当我们使用PHP 7时,我会在二十年后记得你刚才说的话。 - mlwacosmos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接