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

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

  •  
  •   newghost · 2013-11-27 13:40:24 +08:00 · 9801 次点击
    这是一个创建于 4010 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   实用小工具   ·   1332 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:48 · PVG 01:48 · LAX 09:48 · JFK 12:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.