Python VS C,C++,GO, Java ,Javascript, PHP .性能最差的是 Python - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
uppu
V2EX    问与答

Python VS C,C++,GO, Java ,Javascript, PHP .性能最差的是 Python

  •  
  •   uppu 2017-02-14 21:15:40 +08:00 5512 次点击
    这是一个创建于 3195 天前的主题,其中的信息可能已经有所发展或是发生改变。
    32 条回复    2017-06-08 15:28:25 +08:00
    uppu
        1
    uppu  
    OP
       2017-02-14 21:18:11 +08:00
    点击相应的语言会显示源码,可以自己测试
    uppu
        2
    uppu  
    OP
       2017-02-14 21:19:36 +08:00
    轻喷
    clino
        3
    clino  
       2017-02-14 21:20:42 +08:00
    我记得在 https://www.techempower.com/benchmarks/ 这里看到的 python 一般在中游 , 比的是 web framework
    duola
        4
    duola  
       2017-02-14 21:24:17 +08:00
    我正在学 python ,你让我很难过。
    northisland
        5
    northisland  
       2017-02-14 21:26:07 +08:00
    这个不假,
    但是人生苦短,我还是喜欢 Python 。
    liujinlingchn
        6
    liujinlingchn  
       2017-02-14 21:28:22 +08:00 via Android
    依然前五,性能上去别的语言还怎么玩
    metaquant
        7
    metaquant  
       2017-02-14 21:29:13 +08:00
    这只是一个机器时间与人类时间,谁更宝贵的权衡而已
    linboki
        8
    linboki  
       2017-02-14 21:32:13 +08:00 via Android
    语言本身没有性能的说法,只是实现上有性能的差异。 CPython 和 v8 当然没法比,只要你愿意(投入金钱和时间), 请顶尖团队开发一个比目前 java 还快的 jit 实现也不是不可能的
    bingwenshi
        9
    bingwenshi  
       2017-02-14 21:32:33 +08:00
    但是人生苦短,我用 Python
    bingwenshi
        10
    bingwenshi  
       2017-02-14 21:33:41 +08:00
    单纯比快慢没有意义,每个语言都有自己的特色以及适用的场景,为了求快可以去写汇编
    uppu
        11
    uppu  
    OP
       2017-02-14 21:40:55 +08:00
    最近在研究神经网络跟深度学习,本身需要大量的计算工作,很多项目还是选 Python 为开发语言,这是我不解的地方
    uppu
        12
    uppu  
    OP
       2017-02-14 21:42:40 +08:00
    或许如上面几位所说,为了省开发时间,计算问题已经是次要的
    clino
        13
    clino  
       2017-02-14 21:44:43 +08:00
    @uppu 我猜因为 python 开发效率高,先快速开发出来,如果需要优化的针对优化一下,不行可以上 pypy cython 之类的,实在不行就换语言重写,估计现在硬件发展使得不用换语言重现也能接受了
    forrestchang
        14
    forrestchang  
       2017-02-14 22:17:47 +08:00
    @uppu 设计到计算部分的话一般都是拿 C++ 来写的吧。
    weyou
        15
    weyou  
       2017-02-14 22:31:50 +08:00 via Android
    因为 Python 有很多知名的用于科学计算的库,比如 NumPy, SciPy, Matplotlib ,这些都是用 C/C++来实现的模块,所以速度方面不是问题。结合 Python 快速开发的特性让它在科学计算领域里成为第一梯队的编程语言。
    WildCat
        16
    WildCat  
       2017-02-14 22:39:51 +08:00
    ericls
        17
    ericls  
       2017-02-14 22:42:58 +08:00 via iPhone
    @uppu 那是因为 Python 只是做 binding
    grimpil
        18
    grimpil  
       2017-02-14 22:48:33 +08:00 via Android
    时间是一方面,搞得爽是另一方面。
    今天情人节,你们猜我说的啥
    Cbdy
        19
    Cbdy  
       2017-02-14 23:02:22 +08:00 via Android   1
    python 那么动态,设计之初就是胶水语言,要那么快干嘛?优化在瓶颈做才有意义。比如 git 是 c+sh 开发的, c 做性能, sh 做胶水

    js 快是因为 v8 ( v8 实现 js 的时候实际是编译运行的), php 不了解,剩下几个都是编译语言(或 jit ),没有那么太多运行时的东西。
    python 不应该和他们比运行速度,应该比开发速度,比灵活简捷,比开箱即用的特色库
    cuebyte
        20
    cuebyte  
       2017-02-14 23:07:46 +08:00
    这帖子毫无意义啊,一个没有 JIT 的解释型语言,怎么搞得过编译型或是有 JIT 的语言。你应该和 clojure, Lua5.3 , ruby , erlang/elixir 来比。
        21
    eaosn622  
       2017-02-14 23:13:47 +08:00 via iPhone
    毕竟除了性能还得考虑其他嘛 python 开发效率高啊 再者对于初创公司来说人比机器贵啊 人生苦短 我用 python
    mingyun
        22
    mingyun  
       2017-02-14 23:42:53 +08:00
    但是 python 方便
    marenight
        24
    marenight  
       2017-02-15 00:17:46 +08:00
    很多 python 的库是用 c 写的。
    wwhc
        25
    wwhc  
       2017-02-15 07:37:56 +08:00
    看评测 python 的性能连 perl 都不如啊?
    phrack
        26
    phrack  
       2017-02-15 08:13:04 +08:00 via Android
    cpython 以前的开发都不太注重性能的, 3.4 以后才开始有优化的迹象,据说单线程很牛逼了,多线程因为 gil 的原因不可能干的过其他语言了,不过 guido 也说了,除非有人能提出一个办法并简单实现一下,要求在不影响单线程性能和稳定的情况下去掉 gil ,否则不考虑去掉 gil 。
    ytmsdy
        27
    ytmsdy  
       2017-02-15 08:36:02 +08:00
    这属于纯粹学术派的讨论,其实实际上没啥太大的意义。
    大部分人写的程序,因为语言瓶颈而导致效率不行的几乎没有。
    wellsc
        28
    wellsc  
       2017-02-15 08:40:02 +08:00 via Android
    @cuebyte 此处应去掉 erlang elixir
    cljnnn
        29
    cljnnn  
       2017-02-15 08:53:03 +08:00 via Android
    Python 主要是作为胶水语言,可以调用很多其他语言写的模块或工具,功能啊 强大。性能你看也没有弱到哪儿去,又不是差数量级。而硬件都是数量级发展(在此鄙视牙膏厂)
    cuebyte
        30
    cuebyte  
       2017-02-15 12:13:35 +08:00
    @wellsc 为什么呢?
    @uppu clojure 能吊打 python 我知道,可是 ruby 居然也。。。我记得做 leetcode 的时候, py 能吊打 ruby 。

    另外如楼上很多人所说的一样,性能敏感的地方会用 c 拓展的啦,以及有 numba 和 theano 这样的东西存在。
    在科学计算领域,性能不会是短板。
    在 web 端,有 uvloop 这样的大杀器,和 nodejs 比一比还是没问题的。
    shyling
        31
    shyling  
       2017-03-29 19:01:14 +08:00
    @cuebyte 不存在的
    wind3110991
        32
    wind3110991  
       2017-06-08 15:28:25 +08:00
    然后呢,想说明什么?
    任何一门语言都有优势所在,要考虑到所应用的场景和数量级,程序和系统的复杂度
    一般来说,python 的计算和执行效率,对于非大型系统的 99%的场景都足够了;
    何况,对于系统和程序而言,IO 才是最大的瓶颈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2706 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 02:08 PVG 10:08 LAX 18:08 JFK 21:08
    Do have faith in what you're doing.
    ubao msn 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