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

发现一个框架性能对比网站,我把 rust/go/ Java /csharp/js/py 对比了下

  •  1
     
  •   bronyakaka · 31 天前 · 3920 次点击

    直接上 link:https://web-frameworks-benchmark.netlify.app/result?l=python,go,rust,java,javascript,csharp

    这个网站好像定时会把流行框架最新版本拿来测试下性能,qps 之类的,上次测试刚好是昨天,时效性挺高。

    对比了下发现

    1 、js 的 uwebsockets 框架性能吊打其他框架( 20w qps ),不知道是咋做到的

    2 、紧接着是 java 的框架,主要是 activej ,这个好像没啥人用,应该属于那种专精性能的,qps 19.9w 。

    3 、然后就是 rust 的 actix 了,qps 19.5w

    4 、再往下很大都是 java 系列的,什么 vertx (这个听说过)、rapidoid 、jooby ,JIT 优化确实强

    5 、再往下就是 go 了,都说 go 性能一般,最好的是 fasthttp ,qps 在 17w 多,也不算差了,接着是 fiber 、gorouter ,还有字节的 hertz

    6 、rust 的 axum 性能比 gin 好,但要比 go 的 fasthttp 、fiber 差

    7 、接下来还是清一色的 go 框架,不得不吐槽 go web 框架是真的多,感觉都没啥区别。gin 、echo 在 12w qps

    8 、不出意料的垫底:python ,django qps 居然只有 1.6k ,这也太差劲了……

    9 、用的比较多的 spring 在 5w qps ,中游的样子,够用,并且生态比绝大部分框架都强

    当然真实项目的性能肯定没这么简单,这只是单纯测试框架处理请求的能力而已,别太较真

    30 条回复    2024-03-28 08:27:04 +08:00
    Maboroshii
        1
    Maboroshii  
       31 天前
    确实不能太较真。。 拿 1.6k 的 django 来说,一个请求,框架本身占用的耗时才不到 1ms ,我在挂梯子访问 v 站的时候,所有请求耗时都至少 100ms 了。。
    bronyakaka
        2
    bronyakaka  
    OP
       31 天前
    @Maboroshii 我列的是 256 个并发连接的 qps ,所以 1.6k 的 Django 实际一个请求要 6ms 差不多,这是没有业务逻辑的,比其他框架确实差很多🤣
    renmu
        3
    renmu  
       31 天前 via Android
    uwebsockets 用 c 和 c++写的
    bronyakaka
        4
    bronyakaka  
    OP
       31 天前
    @renmu js 套壳吗?好像 js 经常这么干
    renmu
        5
    renmu  
       31 天前 via Android
    @bronyakaka 套了一层绑定,js 下面性能比较高的框架是套了一层 uwebsockets ,比较看好 hyper-express ,有性能的同时又有了 express 的部分生态
    IdJoel
        6
    IdJoel  
       31 天前   ❤️ 1
    加上 PHP ,发现上了 swoole php 性能还是比 go 强
    lysShub
        7
    lysShub  
       31 天前
    他 bench 的源码太简单了,和直接 accept tcp 应该没啥区别
    lysShub
        8
    lysShub  
       31 天前
    go 最快的是 fasthttp , 可能是因为把路由写死了。。。

    https://github.com/the-benchmarker/web-frameworks/blob/master/go/fasthttp/main.go
    dyv9
        9
    dyv9  
       31 天前 via Android
    打一份而已,需要这样操心吗?软件不光是性能问题,更是性价比问题。
    Trim21
        10
    Trim21  
       31 天前 via Android
    @lysShub fasthttp 本就没有理由功能
    fox0001
        11
    fox0001  
       31 天前 via Android
    有没有列出资源占用的对比?就是想看看付出的成本有多大
    ing995683
        12
    ing995683  
       31 天前
    应该把 php 也加进来
    Kylinsun
        13
    Kylinsun  
       31 天前
    @ing995683
    workerman 排第七(#^.^#)
    cbdyzj
        14
    cbdyzj  
       31 天前
    用的 Java 版本有点老
    cndenis
        15
    cndenis  
       31 天前
    Python 的框架需要 wsgi, 这家伙是直接用框架自带的 wsgiref 来测的吧
    nmap
        17
    nmap  
       31 天前
    js/java 能排 c/c++/rust 前面,这网站不用看了
    wangtian2020
        18
    wangtian2020  
       31 天前   ❤️ 1
    @nmap
    其他语言本来就是编译成 wasm 给 JavaScript 打工嘚,怎么就不用看了,不服气吗
    Goooooos
        19
    Goooooos  
       31 天前
    @lysShub 测框架性能当然越简单越好
    mightybruce
        20
    mightybruce  
       31 天前
    看这种网站和以上一些认知,我就不想说了, 你自己开心就好。
    simen513
        21
    simen513  
       31 天前
    @wangtian2020 回 18 楼:这么说的话,shell 最牛逼,所有的程序,只要需要在 OS 上跑的,都得通过它调用,都是给它打工。 @.V.@
    Goooooos
        22
    Goooooos  
       31 天前
    Java 能升级到 jdk21 并使用 zgc 和虚拟线程的话,性能应该会有点提升
    我的网关服务也升级后有稍微提升
    oaix
        23
    oaix  
       31 天前
    这个数据有些诡异:

    吞吐=并发/平均响应时间

    但从数据上来看平均响应小的框架,QPS 反而不高。
    herozzm
        24
    herozzm  
       31 天前
    go 的 fasthttp 算不上框架吧 只是一个路由
    xiaocaiji111
        25
    xiaocaiji111  
       31 天前
    这玩意儿,看看就好,实际开发,接口一复杂,大家都一样了。比如一个接口 500ms ,框架本身是 10ms 还是 1ms 影响不是很大了。
    abersheeran
        26
    abersheeran  
       31 天前
    打榜真没必要,开发体验大过一切。
    chendy
        27
    chendy  
       31 天前
    有一定参考意义,像我这种啥都不懂的 java 农可以顺着找到不少好玩的东西
    但是实际项目开发,web 框架的性能,不说是最需要考虑的东西,但也可以说是最微不足道的东西了,一来十成甚至九成的性能瓶颈不在 web 层,二来在 web 层被打崩之前一般接入层就已经跑满了
    wu00
        28
    wu00  
       31 天前
    eden1
        29
    eden1  
       30 天前
    PHP 不配吗
    bianhui
        30
    bianhui  
       30 天前
    每几个月,就有这样一篇比较
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3028 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:15 · PVG 16:15 · LAX 01:15 · JFK 04:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.