性能测评:Ngix_Lua, Node.JS Python三者性能相当,均比php快近一倍 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
newghost
V2EX    PHP

性能测评:Ngix_Lua, Node.JS Python三者性能相当,均比php快近一倍

  •  
  •   newghost 2013-11-27 13:40:24 +08:00 10191 次点击
    这是一个创建于 4337 天前的主题,其中的信息可能已经有所发展或是发生改变。
    34 条回复    1970-01-01 08:00:00 +08:00
    newghost
        1
    newghost  
    OP
       2013-11-27 13:43:13 +08:00
    里面链接、图片全没了.........
    loading
        2
    loading  
       2013-11-27 13:48:18 +08:00 via iPhone
    记得不建议全文转发的,贴链接就行了
    10iii
        3
    10iii  
       2013-11-27 14:07:42 +08:00   1
    node.js 比 jave EE 快 20%?
    震滴魔?
    CLBG 上的结论可不是这个样子的哦
    http://benchmarksgame.alioth.debian.org/u64/Javascript.php

    然后 Nginx_Lua = Node.JS = Python = PHP × 2?
    如果限定在web server 范围内的话,有这样的比较结果:
    http://www.techempower.com/benchmarks/
    loading
        4
    loading  
       2013-11-27 14:13:18 +08:00 via iPhone
    也就是说我应该继续python,不理node.js
    ibloging
        5
    ibloging  
       2013-11-27 14:15:52 +08:00
    @loading
    算了, 本来想删掉的……

    @10iii
    你这个Case Java7 耗费的内存是JS的将近10倍……

    k-nucleotide
    Javascript V8 96.67 96.78 68,984 1249 0% 0% 0% 100%
    Java 7 50.88 50.92 503,184 1630 0% 0% 0% 100%
    luikore
        6
    luikore  
       2013-11-27 14:17:06 +08:00
    java虚拟机是为benchmark优化的, js虚拟机是为浏览器优化的
    raincious
        7
    raincious  
       2013-11-27 14:26:15 +08:00
    不管什么语言,蹭一下SQL优势就立即不明显了嗯~
    10iii
        8
    10iii  
       2013-11-27 14:31:25 +08:00   1
    @ibloging CLBG是优先考虑运行速度,占用内存只做参考项,另外比较两个语言要从几个可比较的问题综合起来看,才有一定意义。不同语言有各自优势的项目,从平均的结果来看,说node.js比JAVA EE 快20%恐怕是不妥的。
    assad
        9
    assad  
       2013-11-27 14:34:56 +08:00
    这个比较太不靠谱了!
    cute
        10
    cute  
       2013-11-27 16:02:55 +08:00
    脱离实际业务比较不靠谱啊.
    allan1st
        11
    allan1st  
       2013-11-27 20:01:36 +08:00   1
    一直对 Python 有个疑问:
    空循环 100000000 个 loop python 居然要跑很久。其他几乎所有语言都在几毫秒以内完成。
    Matlab the for 够慢了吧,都比 python 快上几十倍。
    yuelang85
        12
    yuelang85  
       2013-11-27 20:29:34 +08:00
    对 @allan1st 所说的好奇,做了个小测试,方法C因为“众所周知”的原因,就不测试了。

    http://gist.github.com/laonger/7674875
    cctvsmg
        13
    cctvsmg  
       2013-11-27 21:02:06 +08:00
    楼主看过这个测评没有:
    http://www.techempower.com/benchmarks/

    openresty理论上应该比其他动态语言都快的非常多的
    仅从语言上来说node.js 次之
    python如果不是用pypy的话会很慢

    实际情况下openresty没有ide可以用的库很贫乏
    node回调写的头晕
    python各方面平衡还算比较好一点

    php去死
    clino
        14
    clino  
       2013-11-27 21:20:53 +08:00
    chaos186
        15
    chaos186  
       2013-11-27 21:21:48 +08:00
    @yuelang85 手贱, 在本机上试了下c, 顿时电脑失去响应......
    clino
        16
    clino  
       2013-11-27 21:22:29 +08:00
    啊,没发现上面已经贴了...
    daiv
        17
    daiv  
       2013-11-27 21:23:48 +08:00
    @raincious 不用sql,那用什么呀
    liuxurong
        18
    liuxurong  
       2013-11-27 21:27:51 +08:00
    实测python比PHP慢,坑一堆一堆的.
    raincious
        19
    raincious  
       2013-11-27 22:05:59 +08:00
    @daiv 我是在说大多数编程语言的瓶颈已经不在语言解析器上了。现在先进一点的编译器和执行器已经足够快了,快到你几乎可以忽略这些差距。

    所以现在的情况是,一个网站往往不是慢在他自己的语言上,而是他使用的附加服务上。SQL是其中一个。

    曾经有经验将自己框架驱动的网站优化到接近3~5毫秒打开,利用了OpCache之后一切都进行的很顺利,直到……网站去MySQL上蹭了点数据,也就5个查询,导致延迟立即飙到了40毫秒+。

    所以网站的优化不仅仅只是选一个快一点的语言嗯。
    felix021
        20
    felix021  
       2013-11-27 23:10:26 +08:00
    @allan1st 扯。。。你找台机器用 c 能在几毫秒跑完1亿个循环?可别说是你用 -O2 把循环优化掉了跑出来的。
    allan1st
        21
    allan1st  
       2013-11-27 23:30:03 +08:00
    @felix021 golang 30ms
    fanzeyi
        22
    fanzeyi  
       2013-11-28 04:23:13 +08:00
    @felix021 ...这我试了下.. 没开任何优化 C 跑出来 0.3s ..



    gcc version 4.6.3
    fanzeyi
        23
    fanzeyi  
       2013-11-28 04:42:19 +08:00
    但是拿 Python 和其他编译型语言比较是不科学的,我稍微比较了下 Ruby, Perl, Node, Javascript(in Blink)。

    发现都半斤八两,除了 node 是一瞬间完成,其他都差不多的时间。6秒+

    http://p4.zhimg.com/cc/60/cc6044e9af6aa98fe19ce1d389b2bb6f_m.jpg
    fanzeyi
        24
    fanzeyi  
       2013-11-28 04:45:26 +08:00
    刚刚不小心 cmd + enter 发出去了,图片链接前有一句话:

    这样的争论其实是没意义的,下面这本书的内容就是一个例子。
    newghost
        25
    newghost  
    OP
       2013-11-28 08:57:33 +08:00
    @cctvsmg

    node 回调不是问题,你可以用primise模式

    @fanzeyi

    好像文中比较的都是脚本语言……
    ispinfx
        26
    ispinfx  
       2013-11-28 09:16:54 +08:00
    @newghost 他是回楼上上。
    yakczh
        27
    yakczh  
       2013-11-28 09:24:29 +08:00   1
    python中看不中用
    php中用不中看
    aveline
        28
    aveline  
       2013-11-28 11:14:18 +08:00   1
    比性能是耍流氓。
    est
        29
    est  
       2013-11-28 11:48:45 +08:00
    @cctvsmg @clino uwsgi 的跑分超过Node了吧。数据库python得分低,完全是因为一票框架java用了prepared statements。这个做凶了,mysql 流量可以降低90%吧。
    felix021
        30
    felix021  
       2013-11-28 12:42:05 +08:00
    @allan1st 鉴于23L @fanzeyi 同学测试的c语言是300ms,go的30ms,很可能是把无用循环优化掉了。顺便说一下,我的测试是250ms, i5 2400 @ 3.1GHz。

    package main

    import "fmt"

    func main() {
    sum := 0
    for i := 0; i < 100000000; i++ {
    sum += i
    }
    fmt.Println(sum)
    }
    felix021
        31
    felix021  
       2013-11-28 12:43:16 +08:00
    @fanzeyi 基本上300ms是可以估计出来的,现在的台式CPU普遍是3GHz左右,1亿个循环,起码需要0.3G个始终周期。 @allan1st
    fanzeyi
        32
    fanzeyi  
       2013-11-28 16:42:10 +08:00
    @newghost 呃,没说文中,我是说 @allan1st 的那个...
    allan1st
        33
    allan1st  
       2013-11-28 17:50:57 +08:00
    @felix021 刚才试了一下,的确是编译时候被优化了。谢谢。
    se77en
        34
    se77en  
       2013-11-29 14:43:24 +08:00
    想问一下大家平时测性能都用什么工具啊?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2630 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 06:21 PVG 14:21 LAX 23:21 JFK 02:21
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86