V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moji2016
V2EX  ›  PHP

PHP 框架 ci 和 laravel 的问题

  •  
  •   moji2016 · 2015-12-18 15:52:10 +08:00 · 5716 次点击
    这是一个创建于 3289 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们用 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 框架吗,到底怎么选择,谢谢。

    22 条回复    2015-12-19 14:51:20 +08:00
    justjavac
        1
    justjavac  
       2015-12-18 16:36:23 +08:00
    > php 框架可以为我们配置一个持久数据连接,减少每个页面时的数据库重复连接开销吗?

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

    他们都说锯比斧子好用,于是我就拿着锯进了树林,砍了一条,累死我了,说实在的,比斧子难用多了。
    cxbig
        3
    cxbig  
       2015-12-18 16:51:36 +08:00
    你这比较的有问题啊,首先 app 部署在什么性能的服务器,各级 cache 开没开都没有交代。
    moji2016
        4
    moji2016  
    OP
       2015-12-18 16:52:55 +08:00
    @justjavac 你什么意思啊,我听不明白。我在同样配置的 ubuntu 机器上, linode vps 上做的测试.
    moji2016
        5
    moji2016  
    OP
       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
        6
    chairuosen  
       2015-12-18 17:01:49 +08:00   ❤️ 1
    要快的话用 yaf ,各种速度测试基本不带 yaf 玩
    GuangXiN
        7
    GuangXiN  
       2015-12-18 17:02:04 +08:00
    没有 profile 的性能优化都是算命
    jarlyyn
        8
    jarlyyn  
       2015-12-18 17:04:45 +08:00
    虽然没用 laravel

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

    一般网站的性能消耗大头不是 mysql 和传输么……
    reeco
        9
    reeco  
       2015-12-18 17:10:22 +08:00
    helloworld 级别的测试没什么意义
    moji2016
        10
    moji2016  
    OP
       2015-12-18 17:12:13 +08:00
    @reeco 取 mysql 库, DB 表中的数据一条,出来显示在页面上,也是这样的测试 qps 差距啊。
    moji2016
        11
    moji2016  
    OP
       2015-12-18 17:13:12 +08:00
    @jarlyyn 很多框架的测试结果,会有几百倍,几十倍,的差距,框架本身性能真的可以忽略不计吗。
    cevincheung
        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
    jarlyyn
        13
    jarlyyn  
       2015-12-18 17:30:24 +08:00
    @moji2016

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

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

    缓存。

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

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

    紫禁城才能用持久链接。

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

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

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

    Premature optimization is the root of all evil.
    过早优化是一切罪恶的根源。
    lee015
        20
    lee015  
       2015-12-19 09:48:20 +08:00 via Android
    用 laravel 做了个接口, 60qps 样子,换成 laravel 的精简版 lumen ,同样的接口 100+qps 。
    snakesoft
        21
    snakesoft  
       2015-12-19 10:31:02 +08:00
    所有的框架不都是要牺牲一些效能的吗。前后端框架都一样。
    yernsun
        22
    yernsun  
       2015-12-19 14:51:20 +08:00
    撸主是来骗积分的,鉴定完毕。 http://www.v2ex.com/t/244371#reply15
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2484 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:47 · PVG 23:47 · LAX 07:47 · JFK 10:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.