V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
est
V2EX  ›  Python

uvloop: Make Python Networking Great Again 能对标 golang 的网络库

  •  4
     
  •   est ·
    est · 2016-05-04 10:32:49 +08:00 · 6548 次点击
    这是一个创建于 3133 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2016-05-04 11:09:30 +08:00
    我知道很多人懒得看帖子了。不服跑个分?


    TCP 性能



    HTTP 性能



    目前只支持 python 3.5 版本
    第 2 条附言  ·  2016-05-04 11:09:50 +08:00
    上图的 tcp 和 http 的图弄反了。
    39 条回复    2016-05-06 13:07:57 +08:00
    ipconfiger
        1
    ipconfiger  
       2016-05-04 10:43:54 +08:00
    Great, 突然感觉还能再战 2 年, 升级 3.5 也有动力了
    clino
        2
    clino  
       2016-05-04 10:50:50 +08:00
    同样是 cython 开发的,这个比 gevent 之类的性能要好哈? 是不是因为能利用到多核?
    fy
        3
    fy  
       2016-05-04 11:07:26 +08:00
    卧草 牛逼啊
    eriale
        4
    eriale  
       2016-05-04 11:10:59 +08:00
    以前还不知道 asyncio 的 event loop 是可以换的。
    现在有在用 python 3.5 的 asyncio 的产品吗?或者 real world 的开源库 /产品?
    loading
        5
    loading  
       2016-05-04 11:16:11 +08:00 via Android
    难怪我的 golang 学习进度一直在拖,原来……
    mortal
        6
    mortal  
       2016-05-04 11:34:47 +08:00
    将草紧紧握住:拍森这下牛逼了!
    hwsdien
        7
    hwsdien  
       2016-05-04 11:40:20 +08:00
    看了不会转 golang 么?
    congeec
        8
    congeec  
       2016-05-04 11:53:03 +08:00
    Python 大法好
    janxin
        9
    janxin  
       2016-05-04 13:15:26 +08:00
    @hwsdien 有些性能还能超 Golang...
    当然了,我现在是在推广用 Golang ,主要是招个 Python 好程序猿比较麻烦。
    est
        10
    est  
    OP
       2016-05-04 13:16:21 +08:00
    @janxin 等等,招 Go 比 Py 容易?
    zeroten
        11
    zeroten  
       2016-05-04 13:39:19 +08:00
    @est 也许他的重点是“好”
    janxin
        12
    janxin  
       2016-05-04 13:39:48 +08:00
    @est 培养一个容易,如果招一般以下水平的也能用。
    est
        13
    est  
    OP
       2016-05-04 13:55:50 +08:00
    @janxin 看来真是 Go 的性能能弥补架构和技术的短板。
    mengzhuo
        14
    mengzhuo  
       2016-05-04 13:58:20 +08:00   ❤️ 1
    那 python 第三方库比 Golang 标准库
    too naive
    敢和 fasthttp 比么?而且 benchmark 里是 IO 还是 CPU bond 都不知道,没啥意义。
    经验证明最后纯 Python 代码量大的时候,基本还是要跪的。
    anying
        15
    anying  
       2016-05-04 13:59:43 +08:00 via Android
    碉堡, py(thon)交易又能进行下去了。
    janxin
        16
    janxin  
       2016-05-04 14:00:37 +08:00 via iPhone   ❤️ 1
    @est 架构不行性能凑,业界潜规则, 23333 。
    est
        17
    est  
    OP
       2016-05-04 14:02:18 +08:00
    @mengzhuo fasthttp 的确牛逼。 py 是追赶者,能追平就不错了。
    janxin
        18
    janxin  
       2016-05-04 14:02:42 +08:00 via iPhone
    @est 而且小公司能用到半年就不错了,还得保证公司没破产不是
    moro
        19
    moro  
       2016-05-04 14:05:57 +08:00
    python 版本是个大问题,看了肯定转 golang 了。
    guotie
        20
    guotie  
       2016-05-04 14:25:01 +08:00
    名字取得好。
    yueyoum
        21
    yueyoum  
       2016-05-04 14:27:15 +08:00
    有个 GIL , 又有什么用呢?

    而且 这仅仅是 IO 性能, 和 python 自己没一点关系, 只是有人 写了个 libuv 的 wrapper 而已。
    来和 go 比一比 运行效率啊
    est
        22
    est  
    OP
       2016-05-04 14:30:40 +08:00
    @yueyoum nodejs 也不支持多核,照样火。
    zhuangzhuang1988
        23
    zhuangzhuang1988  
       2016-05-04 16:43:48 +08:00
    yueyoum
        24
    yueyoum  
       2016-05-04 17:36:12 +08:00
    @est nodejs 火的时候, python 有什么好的 异步框架? twisted? tornado ?

    而且 nodejs 火 也有它的特殊性, 大量前端都会 js 啊。 那时候 刚好 js 全栈炒的也很火的时候。( nodejs + mongodb )

    你看看 nodejs 现在还有多火?
    hcymk2
        25
    hcymk2  
       2016-05-04 17:39:54 +08:00
    在二线城市比较火 , 再我看来。
    guotie
        26
    guotie  
       2016-05-04 18:01:34 +08:00
    换 go 保平安
    xhowhy
        27
    xhowhy  
       2016-05-04 18:03:36 +08:00
    吹牛
    ipconfiger
        28
    ipconfiger  
       2016-05-04 18:06:56 +08:00
    go 写的东西也没几个用到了多牛逼执行效率的, request 一过来就卡到 IO 上了
    yueyoum
        29
    yueyoum  
       2016-05-04 18:08:14 +08:00
    @ipconfiger 果然 v2 里面全是 做 web 的吗? 一个请求过来 各种查数据库, 返回, 完!
    ipconfiger
        30
    ipconfiger  
       2016-05-04 18:15:45 +08:00
    @yueyoum 大部分都是嘛, 用 go 写的 Docker 做例子嘛, 无非来一个 request 就去执行一堆 LXC 的命令等结果而已, 还是 IO 的东西嘛, 类比一下 Openstack, 上万个计算节点的云系统还不是 Python 也撑下来了没听说过性能不够.
    yueyoum
        31
    yueyoum  
       2016-05-04 18:27:15 +08:00
    @ipconfiger

    可能是 我关注于 游戏服务器 领域吧, 这个领域对于 IO 和 执行效率 都有要求。
    也有拿 go 来做 页游服务器的, 他们最大的顾虑就是 go 的 gc 停顿
    ipconfiger
        32
    ipconfiger  
       2016-05-04 18:47:06 +08:00
    @yueyoum 游戏服务器的话, C++加 Lua 不是有很多现成的解决方案么? go 的效率也不过和 Java 打个平手而已
    mathgl
        33
    mathgl  
       2016-05-04 19:03:25 +08:00
    @yueyoum 我表哥做页游,手游,一律用 java ,没听他说有什么性能问题。
    RqPS6rhmP3Nyn3Tm
        34
    RqPS6rhmP3Nyn3Tm  
       2016-05-04 23:22:09 +08:00 via Android
    @mathgl Java 做后端还蛮多的吧,好多大公司都在用。
    坐等 bash 做服务器的神级人物出现。
    nareix
        35
    nareix  
       2016-05-05 00:59:08 +08:00
    ... we use GOMAXPROCS=1 for Go code, nodejs does not use cluster, and all Python servers are single-process ...

    这比的是缺了蛋蛋的 go
    yueyoum
        36
    yueyoum  
       2016-05-05 10:18:13 +08:00
    @ipconfiger 对啊, go 能和 java 打平手, python 的 运行效率呢? 光 IO 调度 NB 并不吸引人。
    qdwang
        37
    qdwang  
       2016-05-05 10:19:42 +08:00
    说白了是 libuv 快,而且业务多了以后再看看速度
    ryanking8215
        38
    ryanking8215  
       2016-05-06 09:56:08 +08:00
    libuv 有比 libev 快快吗?要不整个 evloop
    mathgl
        39
    mathgl  
       2016-05-06 13:07:57 +08:00
    @BXIA 我只是给出一些实际的例子罢了。有 gc 的语言也是可以做 game server 的。 jvm gc 现在没什么特别的问题。不要求太苛刻,都够用了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2729 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:55 · PVG 16:55 · LAX 00:55 · JFK 03:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.