V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · May 4, 2016 · 7005 views
    This topic created in 3646 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  May 4, 2016
    我知道很多人懒得看帖子了。不服跑个分?


    TCP 性能



    HTTP 性能



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

    而且 这仅仅是 IO 性能, 和 python 自己没一点关系, 只是有人 写了个 libuv 的 wrapper 而已。
    来和 go 比一比 运行效率啊
    est
        22
    est  
    OP
       May 4, 2016
    @yueyoum nodejs 也不支持多核,照样火。
    zhuangzhuang1988
        23
    zhuangzhuang1988  
       May 4, 2016
    yueyoum
        24
    yueyoum  
       May 4, 2016
    @est nodejs 火的时候, python 有什么好的 异步框架? twisted? tornado ?

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

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

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

    这比的是缺了蛋蛋的 go
    yueyoum
        36
    yueyoum  
       May 5, 2016
    @ipconfiger 对啊, go 能和 java 打平手, python 的 运行效率呢? 光 IO 调度 NB 并不吸引人。
    qdwang
        37
    qdwang  
       May 5, 2016
    说白了是 libuv 快,而且业务多了以后再看看速度
    ryanking8215
        38
    ryanking8215  
       May 6, 2016
    libuv 有比 libev 快快吗?要不整个 evloop
    mathgl
        39
    mathgl  
       May 6, 2016
    @BXIA 我只是给出一些实际的例子罢了。有 gc 的语言也是可以做 game server 的。 jvm gc 现在没什么特别的问题。不要求太苛刻,都够用了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3757 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 168ms · UTC 10:39 · PVG 18:39 · LAX 03:39 · JFK 06:39
    ♥ Do have faith in what you're doing.