2015-06-24 17:33:05 8927次浏览 5条回答 2 悬赏 4 金钱

最近一直用2.0.4进行开发,在开发的过程中发现一个简单的页面,debuger显示的time居然要1600ms。该页面只是连了数据库读取了一个表的数据并显示出来而已。你们用yii2开发的app也是要加载那么久吗?

QQ图片20150624173005.png

查看log里面耗时最久的就是渲染view了

21	17:23:14.396	trace	yii\base\View::renderFile	Rendering view file: 
22	17:23:15.051	trace	yii\base\View::renderFile	Rendering view file: 

占了 600多ms

最后自己研究出来了,使用Yii2 必须开启opcache,开启和没有开启真心差好远。php5.5自带的 php5.4请自行安装

最佳答案

  • chocoboxxf 发布于 2015-06-24 20:17 举报

    开发环境和生产环境差别比较大,没办法一起比较,我测试过,开发环境光加载debugger和gii相关内容就要消耗很多时间

    6 条回复
    回复于 2015-06-25 09:25 回复

    生产环境也就关了debugger还有记录log,我试了一下,少了0.2 - 0.4秒左右

    回复于 2015-06-25 09:46 回复

    另外urlManager也是有cache的,看看是不是启用了,之前测试如果没有cache,每次UrlManager加载路由规则也会消耗挺多时间。

    回复于 2015-06-25 09:51 回复

    yii2自带的view没怎么用过,用的smarty,另外php开了opcache,基本上没有遇到过加载很慢的情况,除非是数据多,一些ajax请求会慢一点

    回复于 2015-06-25 10:13 回复

    谢谢你,请问一下生产环境中打开了opcache后加载一个类似于我描述的页面,大概耗时多久?

    回复于 2015-06-25 10:34 回复

    我发现一个问题,当我用php5.4 + nginx的时候··打开的速度明显慢于 php5.5 + nginx的速度

    回复于 2015-06-25 15:39 回复

    我用的php 5.6,没有和5.4和5.5对比过,在我的环境下开启opcache后比原来的速度提升了2-3倍,但可能和不同的环境或者代码都有关系

  • 回答于 2015-06-24 17:41 举报

    我觉得电脑该时刻是不是内存已经用了很多了,我出现这种情况,time会很快上升,但是关掉几个软件之后又正常了。

    1 条回复
    回复于 2015-06-24 17:43 回复

    我的电脑是16G i7 用了这5.5M,不会造成这个time会有那么大的出入吧。我使用别的框架貌似几十毫秒就打开了

  • 回答于 2015-06-24 17:50 举报

    Database Queries你的是多少次
    我的13次,6个asset绑定,达到300ms

    1 条回复
    回复于 2015-06-24 17:54 回复

    Database Queries
    总计3条数据。

    1 17:23:14.380 5.0 ms
    2 17:23:14.330 5.0 ms
    3 17:23:14.287 4.0 ms

    这些加起来100ms都不到,但是页面打开的时间,不知道耗在哪了,郁闷

  • 回答于 2015-06-24 18:54 举报

    第一次打开比较慢,第二次就比较快了,因为第二次有缓存了。

  • 回答于 2015-06-24 19:46 举报

    貌似yii的视图加载是硬伤,没有页面缓存的情况下或者第一次加载时都会比较慢,因为yii的视图渲染差不多就是require_once来加载的嵌套

    1 条回复
    回复于 2015-06-25 09:25 回复

    蛋疼,每个页面都要弄个页面缓存

您需要登录后才可以回答。登录 | 立即注册
olay
职场新人

olay

注册时间:2015-06-04
最后登录:2015-09-16
在线时长:3小时6分
  • 粉丝0
  • 金钱36
  • 威望0
  • 积分66

热门问题