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

PHP 框架 laravel 和 phalcon 性能怎么差了 10 几倍

  •  
  •   holinhot · 2017-07-17 14:42:28 +08:00 · 16626 次点击
    这是一个创建于 2679 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 条回复    2018-01-31 16:31:07 +08:00
    yangyao
        1
    yangyao  
       2017-07-17 15:14:23 +08:00
    等你业务发展到一定阶段,composer 依赖逐渐增多的时候,性能差距就不那么明显了。
    jhdxr
        2
    jhdxr  
       2017-07-17 15:39:51 +08:00
    1. 这个 benchmark 是基于 default configuration 的,其中只有 laravel 是默认开启 session 的;
    2. 哪怕把 laravel 的 session 关掉,性能应该(因为我没有进行实际的测试,只是推测)也是不如 phalcon 的,因为 laravel 是用 php 写的,而 Phalcon 作为一个扩展是 C ;
    3. 估算一下你的高并发的项目的峰值有多少,分到每台机器上又有多少,然后对比下那个 benchmark,也许你就会觉得其实高并发也没什么了;
    4. 找一个你手头的代表作,分析下其中 PHP 代码执行、数据库调用、其他内部接口调用等分别耗时多少,也许你就会觉得框架本身的消耗差的并不是那么多了;
    5. 如果你供职于 facebook,请无视我以上说的所有内容。( btw,尽管 php7 在性能上赶上 /超过了 HHVM,但没有 HHVM 这个竞争对手,很可能 PHP7 在性能上根本不会有如此大的提升)
    jarlyyn
        3
    jarlyyn  
       2017-07-17 17:02:18 +08:00
    说句可能不爱听的。

    既然你选择在这个部分用 php。

    那说明你这个部分并发并没有那么重要。
    holinhot
        4
    holinhot  
    OP
       2017-07-17 17:55:42 +08:00
    @yangyao 这个项目功能不多,都是简单粗暴的网站
    holinhot
        5
    holinhot  
    OP
       2017-07-17 17:57:44 +08:00
    @yangyao 其他就几个分类,首页是内容页面。简单的会员系统。邮件发送。用户数据提交的就只有添加收藏,评论功能。
    holinhot
        6
    holinhot  
    OP
       2017-07-17 17:59:28 +08:00
    @jhdxr 高峰时期 30 分钟 300w 请求。
    Miy4mori
        7
    Miy4mori  
       2017-07-17 18:57:12 +08:00 via iPhone
    怕不是只有 yaf 可以满足你的要求
    jarlyyn
        8
    jarlyyn  
       2017-07-17 19:11:57 +08:00
    把核心功能 换个其他的高并发语言比如 go 做个接口?
    zjsxwc
        9
    zjsxwc  
       2017-07-17 19:18:10 +08:00
    瓶颈在 io
    firefox12
        10
    firefox12  
       2017-07-17 19:23:44 +08:00 via iPhone
    1700 的 qps. 也不需要太关注什么语言
    holinhot
        11
    holinhot  
    OP
       2017-07-17 19:25:55 +08:00 via iPhone
    @firefox12 想单台跑
    troycheng
        12
    troycheng  
       2017-07-18 11:18:13 +08:00
    高并发不是目的,脱离场景的高并发没什么意义(除了单独压测框架性能)。峰值 1700,用 PHP,接口里稍微有点业务逻辑,单机就够呛能撑住。
    gclove
        13
    gclove  
       2017-07-18 13:29:10 +08:00
    现在的服务器, 性能完全不在语言上

    这个测试毫无任何意义, 我觉得(你读过它的代码吗)


    它没有连接数据库

    明显 Laravel 慢的原因是 比其它框架注入了更多的变量和方法, 比如你可以轻易的读取 session cache redis mysql cookie file 等等.
    gclove
        14
    gclove  
       2017-07-18 13:30:57 +08:00
    当然事实上 phalcon 确实是比较快的

    你觉得瓶颈在这里的话, 也可以用 Phalcon
    cccoco123
        15
    cccoco123  
       2017-07-18 17:32:20 +08:00
    异步协程框架,基于 swoole 特性实现了,SOA 服务化调用,支持并行、串行调用。支持异步日志,异步文件读写,异步 Mysql,异步 Redis,Mysql,Redis 连接池。
    github.com/fucongcong/Group-Co
    sagaxu
        16
    sagaxu  
       2017-07-19 15:15:21 +08:00
    @holinhot 300W 个 Hello World 和算 300W 个比特币,计算量差老远了
    sagaxu
        17
    sagaxu  
       2017-07-19 15:17:25 +08:00
    @cccoco123 要协程直接用 Go 语言不是更简单吗?
    cccoco123
        18
    cccoco123  
       2017-07-19 17:01:16 +08:00
    @sagaxu 协程配合异步可以解决并发问题。而 php 本身更适合写业务。并不是因为要协程,就去用 go。 再说了 PHP 的协程也不难~
    sagaxu
        19
    sagaxu  
       2017-07-19 17:52:30 +08:00
    @cccoco123 Go 也挺适合写业务的,map 和 array 都内置了,多态也有,也不用操心内存,web 周边设施比如 json/http 之类的也都内置了,近一两年从 PHP 转 Go 的不少。

    PHP 的协程不难,但是麻烦,要折腾 swoole 2.0,如果在协程里调用了阻塞的 C 扩展,结果会如何?而且 swoole 的文档那么简陋,用户基数又远不如 Go 那么大,出问题的几率和解决问题的成本都高于 Go。PHP 的协程要好用,可能需要再等个三到五年,把 swoole 像 fpm 那样合并到 php 官方版本里去。按照现在用户的需求,swoole 才是 PHP 的未来,FPM 跟不上时代了。
    aksoft
        20
    aksoft  
       2017-07-25 09:06:23 +08:00
    你这个什么语言都不行,只能用 c
    Fireflyi
        21
    Fireflyi  
       2017-07-29 23:07:32 +08:00
    13 楼说的对, 还有看你装逼装的挺热乎不想打断你,1700qps 你单机器跑?你跑一个看看,高并发不可能考虑用 laravel,瓶颈主要也不再框架,没什么实战不要动不动就是高并发怎么怎么,说一句话至少 3 处地方看出你在瞎装逼
    hhxsv5
        22
    hhxsv5  
       2018-01-31 16:27:59 +08:00
    Laravel 确实慢,Lumen 虽说是精简版,但也不能匹敌 Golang 内置的 http 服务器。
    如果历史项目是 Laravel 或 Lumen,想要快速提升性能,建议通过 Swoole 来加速,这是我目前在造的轮子,LaravelS
    github.com/hhxsv5/laravel-s 有兴趣可以尝试下。
    hhxsv5
        23
    hhxsv5  
       2018-01-31 16:31:07 +08:00
    我们公司业务重度依赖 Laravel,服务化重度依赖 Lumen,不管怎么调优,FPM 下一个 Hello world 也要耗个 100 来毫秒。不能推到重做,这不现实,所以搞了 LaravelS。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2905 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:21 · PVG 21:21 · LAX 05:21 · JFK 08:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.