PHP 框架 ci 和 laravel 的问题

2015-12-18 15:52:10 +08:00
 moji2016

我们用 laravel 或 ci 框架中的数据库配置,然后在每个控制器中取出数据。这样是不是和每个原生 php 单页写一个 mysql_contact ,就是每个页面都要连接数据库一次。本质是不同的,就是说 php 框架可以为我们配置一个持久数据连接,减少每个页面时的数据库重复连接开销吗?有人说框架中也是每个页面连接一次,并不能减少连接次数。到底框架中和原生单页中的连接方式频率是一样的吗。另外支持 mysql 读写分离,支持 redis 的 laravel/ci 框架,会不会比 flask,revel 不支持这些的框架后期扩展多 PV 更有潜力。

我发现 imooc.com 速度不错。请问根据 url 形式,这个网站有可能是用什么 PHP 框架做的。
是 ci2.0 吗?用了 redis 缓存吗? imooc.com/corp/index
用了什么后端技术,访问这么流畅。
我在 linode 东京 ubuntu vps 上执行 ab -c100 -n100 imooc.com/corp/index request per time : 600 多。
对谷歌执行 ab -c100 -n100 google.com/ request per time : 2000 多。
国内的很多网站,这个命令都返回是几十一二百到三四百。
我也想用一个好用的 php 框架, laravel 是优雅,就是 ab 的测试成绩只有 30 ,比 ci 210 差几倍。
请问 imooc.com 网站用的是 ci2 php 框架吗,到底怎么选择,谢谢。

5538 次点击
所在节点    PHP
22 条回复
justjavac
2015-12-18 16:36:23 +08:00
> php 框架可以为我们配置一个持久数据连接,减少每个页面时的数据库重复连接开销吗?

不能。
justjavac
2015-12-18 16:46:59 +08:00
> ab 的测试成绩只有 30 ,比 ci 210 差几倍。

他们都说锯比斧子好用,于是我就拿着锯进了树林,砍了一条,累死我了,说实在的,比斧子难用多了。
cxbig
2015-12-18 16:51:36 +08:00
你这比较的有问题啊,首先 app 部署在什么性能的服务器,各级 cache 开没开都没有交代。
moji2016
2015-12-18 16:52:55 +08:00
@justjavac 你什么意思啊,我听不明白。我在同样配置的 ubuntu 机器上, linode vps 上做的测试.
moji2016
2015-12-18 16:56:54 +08:00
@cxbig ubuntu 14.04, linode 东京 vps, 1g 内存, SSD, 然后 php 5.6 ,opcache 开启, ci3, laravel5.1 debug=false.同样输出 helloworld,显示在首页上。
chairuosen
2015-12-18 17:01:49 +08:00
要快的话用 yaf ,各种速度测试基本不带 yaf 玩
GuangXiN
2015-12-18 17:02:04 +08:00
没有 profile 的性能优化都是算命
jarlyyn
2015-12-18 17:04:45 +08:00
虽然没用 laravel

但性能第一步不是找缓存么,关框架多大事……

一般网站的性能消耗大头不是 mysql 和传输么……
reeco
2015-12-18 17:10:22 +08:00
helloworld 级别的测试没什么意义
moji2016
2015-12-18 17:12:13 +08:00
@reeco 取 mysql 库, DB 表中的数据一条,出来显示在页面上,也是这样的测试 qps 差距啊。
moji2016
2015-12-18 17:13:12 +08:00
@jarlyyn 很多框架的测试结果,会有几百倍,几十倍,的差距,框架本身性能真的可以忽略不计吗。
cevincheung
2015-12-18 17:27:05 +08:00
如果我要是说 imooc 真慢, po 主会不会更晕……

先不说框架问题,真正实际做产品的时候,系统架构才是最根本的问题。

同样的一套产品源代码部署在一台 64 核 CPU & 128G 内存的机器上和 部署在 1 核 64MB 内存的机器上,然后比较运行速度,有任何意义吗?

同样的服务器配置,部署在国家骨干网络线路机房和部署在你自己家里的小水管小区 ADSL 拨号宽带上,然后比较从地球另一端分别的访问速度,有任何意义吗?


然后是 po 主的问题:

imooc 是否使用了 redis ,有没有使用框架, 用的什么框架,甚至用的什么语言写的,除了 imooc 自己以外,没有任何人能给出正确答案,凡是给答案的都是猜的。

nginx add_header x-powered-by: php/1000.1000.100 。后端确是 java 233333333
nginx rewrite /*.php /*.java 。 访问任何.php 文件,结果实际都是 java 处理的 23333333
jarlyyn
2015-12-18 17:30:24 +08:00
@moji2016

要是性能这么重要, php 早死了。

要解决性能问题?很容易啊。

缓存。

缓存不能解决问题的地方, api+mvvc 。

还不够?你都发达成这样了再找一批人开发一边也没问题了。
movtoy
2015-12-18 20:12:56 +08:00
数据库持久链接需要到 web 服务器的父进程,紫禁城。

紫禁城才能用持久链接。

框架只是保存了某个配置文件的值,然后跟会话一样,下次需要时取出来。。
SharkIng
2015-12-18 21:14:20 +08:00
imooc.com/corp/index 这个网站根本打不开啊,难道是我打开方式不对?
orvice
2015-12-19 00:11:52 +08:00
PHP 各个框架之间讨论性能意义不大
laravel 偏重,缓存做下,也不会多慢了
jellybool
2015-12-19 01:16:57 +08:00
msg7086
2015-12-19 04:41:09 +08:00
你 ab 跑出来是 30qps ,一天就是 260 万访问量。
你的网站已经到这个数量级了吗?

如果到了,那么就想办法一个月盈利 500 元然后换个牛逼的服务器吧。

如果没有……
msg7086
2015-12-19 04:46:53 +08:00
有一个很重要的论点:

Premature optimization is the root of all evil.
过早优化是一切罪恶的根源。
lee015
2015-12-19 09:48:20 +08:00
用 laravel 做了个接口, 60qps 样子,换成 laravel 的精简版 lumen ,同样的接口 100+qps 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/244484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX