在Laravel应用程序中减少等待时间

5
我正在开发一个使用Laravel 4.1框架编写的PHP应用程序。到目前为止,每个页面只有几个MySQL查询,其中许多使用Cache类进行缓存,使用Redis服务器。
目前,我正在使用Apache 2.2.24和PHP 5.4.17在本地开发,使用内部(但不是localhost)MySQL数据库。
使用Chrome的开发者工具,我检查Network选项卡以查看页面加载所需的时间等信息,但我看到了一些奇怪的结果。可以在下面看到,页面花费了很长时间等待内容被提供:

Network output

正如您所看到的,页面需要等待682毫秒才能将内容发送回浏览器。有没有什么方法可以改善这种情况?为什么Laravel的开销如此之大?
除了我们使用的自定义Facade以使使用Entypo更加容易外,没有额外的包,只有Laravel默认的包。
有人知道如何改进吗?

1
你使用过PHP分析器来查看哪些部分占用了大量时间吗?我们使用了NewRelic,它非常有帮助,可以准确定位缓慢的SQL查询和代码。他们提供免费的14天试用期。你也可以使用类似XDebug的工具。 - ajtrichards
目前还没有,我希望这只是一个愚蠢的配置设置。安装XDebug很麻烦,但这可能是真正找出问题的唯一方法。 - James
我们之前确实使用过它们,但是用于Node.js应用程序,所以我们的免费试用已经结束了,目前还没有支付的能力。但是谢谢! - James
如果您使用此链接http://newrelic.com/aws再次注册,您将免费获得标准版 :-) - ajtrichards
我需要使用AWS吗? - James
显示剩余2条评论
1个回答

8
如果我是你,我会安装Chrome Clockwork扩展和Laravel Clockwork包。Clockwork可以给你一个时间轴,你可以看到哪些操作需要很长时间,还有一个数据库查询选项卡,你可以看到每个查询需要多长时间来加载。

screenshot of clockwork

愉快的寻找(:


这真的帮了我们很多!虽然我们并没有真正减少报告的等待时间,但我成功地降低了我们执行的查询数量(感谢急切加载),现在我们可以轻松地在整个代码库中进行日志记录。谢谢! - James

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