用户
 找回密码
 入住 CI 中国社区
搜索
查看: 9467|回复: 23
收起左侧

[版本 3.x] ci框架的响应为什么很慢,如何优化?

[复制链接]
发表于 2016-7-16 22:33:36 | 显示全部楼层 |阅读模式
我的项目原来是纯PHP结构的,没有使用框架。最近想学下CI框架,把项目套进去后,发现响应明显变慢,原来500多条数据的页面,最多1秒能打开,使用CI框架后,要1.5秒,这性能影响也太大了吧?反正项目中的页面感觉比原来纯PHP有感觉得到的延迟,这样正常的吗?还是有什么地方需要优化的?
发表于 2016-7-18 15:09:40 | 显示全部楼层
我想我应该找到这个问题的解决方式了,应该将数据库配置里面的默认配置'pconnect' => FALSE,改成'pconnect' => TRUE,这样访问数据库的熟读就能达到Hex说的500毫秒
发表于 2016-7-21 14:08:43 | 显示全部楼层
cocoonyun 发表于 2016-7-20 12:51
谢谢指导。我也是最近刚摸索框架,用框架的话,访问不同的“控制器/方法”比如news/add,news/edit,news ...

首先,效率不是你想象的这么差,当然肯定比只一个文件差一些。
其次,我们使用框架看重的不是性能,而是要改善可维护性、健壮性、提升团队开发水平,最终提高开发效率,改善开发体验。这才是我们使用框架的目的,否则可以不用框架,回到200X年时候的 PHP HTML 一个文件混合起来的情形,那个性能最好。
所以,还是看你的目的是什么,不过,在大型网站里,PHP 不是性能的瓶颈,瓶颈多数在 IO 上,比如 MySQL 数据库。
 楼主| 发表于 2016-7-19 09:41:28 | 显示全部楼层
Hex 发表于 2016-7-18 17:47
一次读1000条数据,这个本身就不正常,数据量大就需要分页了。

是的,这个我知道,没分页是因为我在测试性能。现在我发现也不是ci框架的问题,我自己做了一个简单的框架,初始化也不加载任何东西,就是做了单一入口、路由转发和MVC,数据库接口也没变,然后用 控制器/方法 的方式访问页面,发现刷500条数据出来还是比原先纯PHP慢0.5秒。(原来我是没有采用单一入口和mvc结构,直接该问页面所在地址),不知道到底是什么原因,难道延迟都消耗在这些流程性的东西上面?
发表于 2016-7-17 08:44:17 | 显示全部楼层
你能把项目套进CI里面,不得不佩服你。
发表于 2016-7-18 10:17:17 | 显示全部楼层
确实是这个问题,是比较慢,不是知道是我们新手不懂还是真的慢,反正一加载数据库就慢,点击后台菜单的响应时间几乎是2秒了,明显感觉有卡顿的情况,如果不加载数据库那就非常快,很奇怪,有人说是数据库的问题,可数据库就一个表,一两条记录,不知道问题出在什么地方,希望论坛里面的CI大神们给予赐教
$autoload['libraries'] = array('database','form_validation','session');
发表于 2016-7-18 11:30:10 | 显示全部楼层
nuv_1066 发表于 2016-7-18 10:17
确实是这个问题,是比较慢,不是知道是我们新手不懂还是真的慢,反正一加载数据库就慢,点击后台菜单的响应 ...

应该是服务器问题,具体要看你的环境才能确定。
发表于 2016-7-18 11:31:04 | 显示全部楼层
你的页面1秒打开也比较慢,应该具体跟踪一下哪里造成的缓慢,一般网站500毫秒就应该打开了。
发表于 2016-7-18 14:26:16 | 显示全部楼层
Hex 发表于 2016-7-18 11:31
你的页面1秒打开也比较慢,应该具体跟踪一下哪里造成的缓慢,一般网站500毫秒就应该打开了。 ...

老板 ci4 什么时候发布稳定版本呀,好期待 是不是这一次性能和yii有的一比较
发表于 2016-7-18 17:20:24 | 显示全部楼层
longrbl 发表于 2016-7-18 14:26
老板 ci4 什么时候发布稳定版本呀,好期待 是不是这一次性能和yii有的一比较 ...

现在 CI 比 YII 慢很多么?
发表于 2016-7-18 17:21:02 | 显示全部楼层
nuv_1066 发表于 2016-7-18 15:09
我想我应该找到这个问题的解决方式了,应该将数据库配置里面的默认配置'pconnect' => FALSE,改成'pconnect' ...

一般来说不应该打开 pconncent.....
 楼主| 发表于 2016-7-18 17:29:16 | 显示全部楼层
Hex 发表于 2016-7-18 11:31
你的页面1秒打开也比较慢,应该具体跟踪一下哪里造成的缓慢,一般网站500毫秒就应该打开了。 ...

应该是从数据库读取大量数据,并显示出来造成的时间延迟,比如一次读取1000条数据并显示在一个页面的话,时间上会缓慢应该还是正常的吧?

本版积分规则