the5fire的技术博客

关注python、vim、linux、web开发和互联网--life is short, we need python.


PyPy简单介绍

作者:the5fire | 标签:     | 发布:2013-06-15 5:09 a.m. | 阅读量: 8350, 8212

总结了这段时间在PyPy上的折腾,早上给同事分享了一下,不过关于PyPy里面还有很多东西需要去理解。这里先把简单介绍版拿出来,其实是做成一个html5的ppt的rst源码。稍后找个地方放ppt,效果应该不错。

ppt看这里: Link

下面开始:

PyPy简单介绍

胡阳@手机搜狐

date: 2013-06-14

http://www.the5fire.com

什么是PyPy

  • 纯Python实现的Python解释器(Python in Python)
    • 其实是RPython
  • 一个框架:用来实现编程语言尤其是动态语言的解释器/虚拟机
    • 比如Ruby解释器: Topaz
    • 比如Prolog解释器: Pyrolog

起源

  • author, Armin Rigo:

  • Psyco , 由C编写(2012年终止)

    简单易用:

    import psyco
    psyco.full()
    

但因为基于C开发,相当于用C重写了CPython,灵活性太差,于是作者就跑去参与了PyPy的开发。

特性

  • Speed - JIT
  • Memory usage - 据说改善了GC
  • Compatibility - 标准库和大多数扩展库
  • Sandboxing - 虚拟的执行环境
  • Stackless - 默认集成

关键技术

  • RPython

    也是在PyPy中提出的,Python的子集-Restric/Reduce Python

  • JIT

    针对常被执行的代码进行编译,优化为Native code

架构

  • RPython Translation Toolchain doc1

    一个通用的动态语言实现框架

  • 纯Python的解释器(RPython) doc

    使用上面的框架实现的灵活高速的Python实现

安装使用

  1. http://pypy.org/download.html
  2. virtualenv --no-site-packages -p /home/pypy-2.0.2/bin/pypy pypy-env

实际效果

  • 对于cpu密集型应用比CPython快3~5倍,侧重于算法和循环
  • 对于tornado的WEB应用占用10倍左右内存,整体性能无提升

都是在本地测试

它会是未来?


----EOF-----

扫码关注,或者搜索微信公众号:码农悟凡


其他分类: