我们用 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 框架吗,到底怎么选择,谢谢。
1
justjavac 2015-12-18 16:36:23 +08:00
> php 框架可以为我们配置一个持久数据连接,减少每个页面时的数据库重复连接开销吗?
不能。 |
2
justjavac 2015-12-18 16:46:59 +08:00
> ab 的测试成绩只有 30 ,比 ci 210 差几倍。
他们都说锯比斧子好用,于是我就拿着锯进了树林,砍了一条,累死我了,说实在的,比斧子难用多了。 |
3
cxbig 2015-12-18 16:51:36 +08:00
你这比较的有问题啊,首先 app 部署在什么性能的服务器,各级 cache 开没开都没有交代。
|
4
moji2016 OP @justjavac 你什么意思啊,我听不明白。我在同样配置的 ubuntu 机器上, linode vps 上做的测试.
|
5
moji2016 OP @cxbig ubuntu 14.04, linode 东京 vps, 1g 内存, SSD, 然后 php 5.6 ,opcache 开启, ci3, laravel5.1 debug=false.同样输出 helloworld,显示在首页上。
|
6
chairuosen 2015-12-18 17:01:49 +08:00 1
要快的话用 yaf ,各种速度测试基本不带 yaf 玩
|
7
GuangXiN 2015-12-18 17:02:04 +08:00
没有 profile 的性能优化都是算命
|
8
jarlyyn 2015-12-18 17:04:45 +08:00
虽然没用 laravel
但性能第一步不是找缓存么,关框架多大事…… 一般网站的性能消耗大头不是 mysql 和传输么…… |
9
reeco 2015-12-18 17:10:22 +08:00
helloworld 级别的测试没什么意义
|
12
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 |
13
jarlyyn 2015-12-18 17:30:24 +08:00
|
14
movtoy 2015-12-18 20:12:56 +08:00
数据库持久链接需要到 web 服务器的父进程,紫禁城。
紫禁城才能用持久链接。 框架只是保存了某个配置文件的值,然后跟会话一样,下次需要时取出来。。 |
15
SharkIng 2015-12-18 21:14:20 +08:00
imooc.com/corp/index 这个网站根本打不开啊,难道是我打开方式不对?
|
16
orvice 2015-12-19 00:11:52 +08:00 via iPad
PHP 各个框架之间讨论性能意义不大
laravel 偏重,缓存做下,也不会多慢了 |
17
jellybool 2015-12-19 01:16:57 +08:00
|
18
msg7086 2015-12-19 04:41:09 +08:00
你 ab 跑出来是 30qps ,一天就是 260 万访问量。
你的网站已经到这个数量级了吗? 如果到了,那么就想办法一个月盈利 500 元然后换个牛逼的服务器吧。 如果没有…… |
19
msg7086 2015-12-19 04:46:53 +08:00
有一个很重要的论点:
Premature optimization is the root of all evil. 过早优化是一切罪恶的根源。 |
20
lee015 2015-12-19 09:48:20 +08:00 via Android
用 laravel 做了个接口, 60qps 样子,换成 laravel 的精简版 lumen ,同样的接口 100+qps 。
|
21
snakesoft 2015-12-19 10:31:02 +08:00
所有的框架不都是要牺牲一些效能的吗。前后端框架都一样。
|
22
yernsun 2015-12-19 14:51:20 +08:00
撸主是来骗积分的,鉴定完毕。 http://www.v2ex.com/t/244371#reply15
|