【问题标题】:Slow execution of Symfony project locallySymfony 项目在本地执行缓慢
【发布时间】:2016-05-12 12:30:01
【问题描述】:

我有这个问题很长时间了,但是显示我的 Symfony 2 项目的简单页面变得越来越慢。

这是我的开发环境:

  • 带有 PHP 5.3.13、MySQL 5.5.24 和 Apache 2.2.22 的 Wampserver 2.2
  • 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
[2016 年 5 月 12 日星期四 14:11:28] [错误] [客户端 127.0.0.1] PHP 堆栈跟踪:,引用者:http://localhost/MyProject/web/app_dev.php/myURL?init
[2016 年 5 月 12 日星期四 14:11:28] [错误] [客户端 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
[2016 年 5 月 12 日星期四 14:11:30] [错误] [客户端 127.0.0.1] PHP 致命错误:在 C:\wamp\www\MyProject\app\cache\dev\classes.php 中超过了 90 秒的最大执行时间上线5270,推荐人: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 [2016 年 5 月 12 日星期四 14:11:30] [错误] [客户端 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 [2016 年 5 月 12 日星期四 14:11:32] [错误] [客户端 127.0.0.1] PHP 致命错误:C:\wamp\www\MyProject\app\cache\dev\classes.php 中的最大执行时间超过 90 秒在线5270,推荐人: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 [2016 年 5 月 12 日星期四 14:11:32] [错误] [客户端 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 [2016 年 5 月 12 日星期四 14:13:04] [错误] [客户端 127.0.0.1] PHP 致命错误:在 C:\wamp\www\MyProject\app\cache\dev\classes.php 中超过了 90 秒的最大执行时间上线5270,referer:http://localhost/MyProject/web/app_dev.php/myURL?init

有没有人知道我能做什么...我已经重新安装了几次我的软件,但它并没有改变任何东西

感谢您的想法和任何帮助。

【问题讨论】:

  • 您是否启用了 XDebug?
  • 绝对.. 使用 Netbeans 进行调试
  • 尝试(完全)禁用 XDebug 并检查它是否变得更好。它不应该减慢 Symfony 的速度,但值得一试。
  • 确实很慢,但少了很多...显示页面 22 秒,不再“超过 90 秒的最大时间...我可以做些什么来调试并使其正常工作?
  • 现在,当您可以成功渲染 Symfony 页面时,我会在 Symfony 的分析器中检查花费了这么多时间。

标签: windows symfony netbeans wampserver


【解决方案1】:

根据问题中的 cmets,我们得出的答案是 XDebug 通常对 PHP 性能有显着影响。

您在命令中写道,Symfony 的分析器现在显示 3-6 秒,但实际上需要更多时间。这意味着,PHP 本身可能不是唯一的问题。

我建议查看浏览器的开发工具(Firebug 等,具体取决于您使用的浏览器)并在“网络”选项卡中查看时间线。也许它会给你更多的信息,去哪里寻找原因。

对于我的本地计算机,执行 Symfony 通常需要 PHP 大约一秒钟(在开发环境中;并且取决于缓存状态和它是什么页面)。

【讨论】:

  • 我根据 PHP 版本提供 xdebug 版本的 url xdebug.org/files
  • 我已经开发这个 xdubug 的东西超过 5 年了。差点让我改用 Linux。言语无法形容我多么感谢@Jakub!
【解决方案2】:

我为在本地机器上的开发模式下加快 symfony 执行时间所做的工作:

  1. 安装 PHP 7.*,它确实提高了性能。
  2. 启用与 PHP 捆绑的 Opcache PHP 扩展
  3. realpath_cache_size 设置为4048k
  4. 安装 redis 并在学说配置中启用元数据缓存。请记住,每次添加/更改实体文件时,都必须手动清除 redis 缓存。这是值得的,因为它在开发模式下将加载时间增加了大约 70-100 毫秒。
  5. 执行composer dump-autoload --optimize创建类映射。

在优化之前,我在开发模式下的加载时间约为 700-1000 毫秒,现在是 250-350。

当然,您的机器上的数字会有所不同。

【讨论】:

  • 对不起,我不能那样做...我明白你说的话,我相信你是对的,但我在一家大公司工作,我不决定 PHP 的版本或其他什么。它是全国性的。
  • 但我会记得你刚刚说过的,当我们是 PHP 7 的时候 20 年
猜你喜欢
  • 2014-03-02
  • 1970-01-01
  • 2018-07-28
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 2015-12-19
  • 2011-08-31
相关资源
最近更新 更多