Pyston与PyPy:为Python提速的两种不同方式

原文Pyston and PyPy chart different courses to a faster Python
作者:Serdar Yegulalp 翻译:赖信涛 责编:仲培艺

Pyston与PyPy:为Python提速的两种不同方式

让Python又快速又稳定的方法是什么?这个问题的答案,取决于你问的是谁。

如果是迅速成长的Pyston项目的创始人Dropbox,那么选择将会是从目前的Python着手,优化它的速度。如果是PyPy,那么选择就是更加Python的方式,用Python本身实现,加快它的速度。

两个项目相互竞争,让Python速度更快并不是一件坏事。事实上,这还可以让用户自己选择适合他们的方式。

发展情况

Pyston的发展一直都很快。最新版本0.5.1,实现了JIT编译的Python,而Dropbox则充分利用这一点来提高性能。根据Dropbox的标准,Pyston不仅运行速度更快,启动速度也更快。启动速度慢一直是所有动态语言JIT编译器的通病,但是Pyston通过使用内联缓存和不同的JIT技术克服了这个问题。

在这些方面PyPy也卓有成就。四月份的5.1版本中,减少了脚本启动的时间,增加了对硬件类型和处理器的支持。多平台支持也是PyPy的一大卖点(通过Python的子集实现),让跨平台变得简单。PyPy在它的生态系统中还有很多有价值的工具:比如Python Debugger,可以向前和向后查看程序的状态。

兼容性

Pyston和PyPy的一个巨大区别就是它们的向后兼容性。Python最大的优点是它大量的第三方库和应用,所以,如果一个Python实现不兼容这些库的话,就不算真正的Python。Pyston想要做到兼容C语言实现Python扩展,比如SciPy

相比之下,PyPy在支持C语言编写的第三方库这方面一直存在问题,需要手动配置。而现在已受最受欢迎的数学和统计学库Numpy支持,也有很多库内置在PyPy中。

PyPy想要通过使用他们自己的C语言接口cffi来解决这个问题。相较于Python默认的C语言接口,Cffi是一个更快,更加Pythonic的实现,甚至很多非PyPy用户也很喜欢。但是,移植老的项目也并非微不足道的工作。

选择你自己的方式

另一个主要的不同是,这些项目背后的负责人是谁。PyPy是一个由Armin Rigo募集资金、自发的一个项目。而Pyston则由Dropbox支持赞助。这个公司的雇员包括Python的创始人Guido van Rossum,其代码也会在Dropbox的产品中运行。

为什么Dropbox要重新开发一个项目呢?可能是因为PyPy并不能满足Dropbox的需求,或者Dropbox不想把技术风险压在一个别人的项目上,想要自己对项目有完全的控制,并满足自己的需求。

从短期来看,这意味这PyPy有了一个潜在资源;从长期来看,Python用户有了更多的选择:PyPy注重未来的生态,Pyston则强调兼容性。

2016年8月12日-13日,由CSDN重磅打造的互联网应用架构实战峰会运维技术与实战峰会将在成都举行,目前18位讲师和议题已全部确认。两场峰会大牛讲师来自阿里、腾讯、百度、京东、小米、乐视、聚美优品、YY互娱、华为、360等知名互联网公司,一线深度的实践,共同探讨高可用/高并发/高性能系统架构设计、电商架构、分布式架构、运维工具研发与实践、运维自动化系统的构建、DevOps、云上的运维案例分析、虚拟化技术、应用性能检测与管理、游戏行业的运维实践等,将和与会嘉宾共同探讨「构建更安全、更高性能、更稳定的架构和运维体系」等领域的话题与技术。【八折优惠中,点击这里抢票,欲购从速。】