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

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

  •  
  •   holinhot · 68 天前 · 1833 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。
    21 回复  |  直到 2017-07-29 23:07:32 +08:00
        1
    yangyao   68 天前
    等你业务发展到一定阶段,composer 依赖逐渐增多的时候,性能差距就不那么明显了。
        2
    jhdxr   68 天前
    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 在性能上根本不会有如此大的提升)
        3
    jarlyyn   68 天前
    说句可能不爱听的。

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

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

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


    它没有连接数据库

    明显 Laravel 慢的原因是 比其它框架注入了更多的变量和方法, 比如你可以轻易的读取 session cache redis mysql cookie file 等等.
        14
    gclove   67 天前
    当然事实上 phalcon 确实是比较快的

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

    PHP 的协程不难,但是麻烦,要折腾 swoole 2.0,如果在协程里调用了阻塞的 C 扩展,结果会如何?而且 swoole 的文档那么简陋,用户基数又远不如 Go 那么大,出问题的几率和解决问题的成本都高于 Go。PHP 的协程要好用,可能需要再等个三到五年,把 swoole 像 fpm 那样合并到 php 官方版本里去。按照现在用户的需求,swoole 才是 PHP 的未来,FPM 跟不上时代了。
        20
    aksoft   60 天前
    你这个什么语言都不行,只能用 c
        21
    Fireflyi   56 天前
    13 楼说的对, 还有看你装逼装的挺热乎不想打断你,1700qps 你单机器跑?你跑一个看看,高并发不可能考虑用 laravel,瓶颈主要也不再框架,没什么实战不要动不动就是高并发怎么怎么,说一句话至少 3 处地方看出你在瞎装逼
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   543 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 31ms · UTC 20:06 · PVG 04:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1