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
sujin190
V2EX  ›  Python

tornado IOStream 在 pypy 下面真是慢啊,自定义 IOStream 后, mysql 异步 drive 性能提高一倍

  •  
  •   sujin190 ·
    snower · 2016-04-29 13:33:53 +08:00 · 3789 次点击
    这是一个创建于 3137 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 TorMySQL 自定义了 IOStream ,简化读写,性能提高明显啊,单进程破万查询了,查询一条记录,两个字段, i5cpu

    python2.7 tormysql 0.2.2

    2.7.6 (default, Jun 22 2015, 17:58:13)
    [GCC 4.8.2]
    tormysql 0.2.2
    result: 21.210777998s 100199 4723.96606595/s
    

    pypy5.0 tormysql 0.2.2

    2.7.10 (bbd45126bc69, Mar 18 2016, 21:35:08)
    [PyPy 5.0.1 with GCC 4.8.4]
    tormysql 0.2.2
    result: 11.9937579632s 100199 8354.26080644/s
    

    python2.7 tormysql 0.2.3

    2.7.6 (default, Jun 22 2015, 17:58:13)
    [GCC 4.8.2]
    tormysql 0.2.3
    result: 18.6732668877s 100199 5365.90627675/s
    

    pypy5.0 tormysql 0.2.3

    2.7.10 (bbd45126bc69, Mar 18 2016, 21:35:08)
    [PyPy 5.0.1 with GCC 4.8.4]
    tormysql 0.2.3
    result: 7.02699589729s 100199 14259.1477592/s
    

    也顺便是下 Tornado_MySQL 吧

    python2.7 tornado_mysql 0.6.3

    2.7.6 (default, Jun 22 2015, 17:58:13)
    [GCC 4.8.2]
    tornado_mysql (0, 6, 3, None)
    result: 50.5161859989s 100199 1983.50287178/s
    

    pypy5.0 tornado_mysql 0.6.3

    2.7.10 (bbd45126bc69, Mar 18 2016, 21:35:08)
    [PyPy 5.0.1 with GCC 4.8.4]
    tornado_mysql (0, 6, 3, None)
    result: 12.247661829s 100199 8180.9968844/s
    
    5 条回复    2016-05-02 19:34:05 +08:00
    tinyproxy
        1
    tinyproxy  
       2016-04-29 18:12:35 +08:00 via iPhone
    你拿 cpython 对比过么?印象中 tornado 有 c 模块用来加速的
    sujin190
        2
    sujin190  
    OP
       2016-04-29 20:27:45 +08:00
    @tinyproxy 这比较的不就是 cpython 和 pypy 么?
    zjxubinbin
        3
    zjxubinbin  
       2016-04-30 01:21:52 +08:00
    无感~已经转到 Rust 了
    jamiesun
        4
    jamiesun  
       2016-04-30 17:17:23 +08:00
    tornado 性能不如 cyclone ( twisted ),用 pypy 加速后, tornado 更是不行。
    sujin190
        5
    sujin190  
    OP
       2016-05-02 19:34:05 +08:00
    @jamiesun tornado coroutine 确实很慢,我不知道 twisted 的 coroutine 具体是怎么实现的,但不管怎么说,估计都差不多,除非完全使用语言层面的 coroutine ,否则很难有大的性能提升吧, tornado 用 pypy 加速后其实已经可以了,完全不依赖后端数据库的估计也不会用 python ,否则这么高的并发完全可以耗尽后端性能了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:03 · PVG 01:03 · LAX 09:03 · JFK 12:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.