Heroku只支持PyPy-1.9,由于greenlet在早期的pypy版本上比较慢,PyPy-2.1还能支持个gevent,所以顺手搞了一个Heroku的PyPy-2.1 build pack
这个fork版本支持的Python Runtime:
- Python-2.7.4
- Python-3.3.1
- PyPy-1.9 (experimental)
- PyPy-2.1 (experimental)
使用方法:
创建新项目的时候:
heroku create --stack cedar --buildpack git://github.com/ntkrnl/heroku-buildpack-pypy2.1.git
对于已经存在的项目:
heroku config:set BUILDPACK_URL=git://github.com/ntkrnl/heroku-buildpack-pypy2.1.git
在
runtime.txt
里面,写pypy-2.1
使用Tornado hello world, ab -n 10000 -c 300
做了下性能测试
Python-2.7.4
PyPy-1.9
PyPy-2.1
可以看出和PyPy-2.1相比,Python-2.7.4和PyPy-1.9都是渣渣
值得注意的是PyPy占用的内存颇多,Python-2.7.4大概启动的时候使用30mb的内存,PyPy则至少150mb。而Heroku的一个free instance只有500mb的内存,所以如果用Supervisor启动多个进程的时候,要注意设置PYPY_GC_MAX,防止内存溢出。