当前位置:新闻中心行业动态 → 正文

谷歌使用Grumpy解决CPython的并发问题

责任编辑:editor004 作者:Abel Avram |来源:企业网D1Net  2017-01-18 11:41:24 本文摘自:INFOQ

谷歌通过使用Go语言创建了一个新的Python运行时,解决了CPython中全局解释器锁(Global Interpreter Lock)导致的并发局限。

谷歌的YouTube前端和API使用Python开发,运行在CPython 2.7之上,CPython 2.7是Python解释器的参考实现。这些年来,Python代码已经增长到数百万行了,在经过对运行时进行性能调整之后一般表现良好。但是他们碰到了一个再三出现的问题。据谷歌透露:“并发负载在CPython上的表现并不好。”

在研究了许多其他可能的解决方案后,谷歌决定尝试在Go的运行时上面运行Python代码,因为它对并发性的强大支持。于是Grumpy项目诞生了。Grumpy可以将Python代码转换为Go源代码,然后将其编译为目标平台的本地代码。Go中间代码是一系列应用在Python对象数据结构上的操作。

因为它使用了编译,Grumpy牺牲了解释型语言所具有的一些的开发自由度和特性。但谷歌声称,静态分析带来了性能上的优化,通过简单的导入就可以使用Go的包,这两项好处弥补了上述的不足。

静态编译的另一个结果是Grumpy不支持并且将“可能永远不支持”CPython中可用的一些动态功能:exec、eval和compile,因为支持它们将需要“使用笨重而低效的编译工具链构建Grumpy程序”。虽然理论上可能,但是Grumpy团队表示,他们也不打算支持C扩展模块,因为“Grumpy的API和对象布局与CPython不同”。

Google试图用Grumpy替代CPython 2.7。有些人希望看到Grumpy在未来支持Python 3.x。在回答有关支持Python 3的问题时,YouTube的高级软件工程师Dylan Trotter说:“我们有一个大的Python 2.7代码库,所以这是我们一直关注的。我肯定想支持Python 3。”他还在另一个帖子中说,“近期没有Python 3的具体计划,但长期来说我肯定想要支持它。”

Google基于Apache 2.0许可在GitHub上开源Grumpy,邀请开发人员评论和贡献。 还为此设立了一个论坛。

查看英文原文:Google Solves CPython’s Concurrency Issues with Grumpy

关键字:GrumpyCPython

本文摘自:INFOQ

x 谷歌使用Grumpy解决CPython的并发问题 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业动态 → 正文

谷歌使用Grumpy解决CPython的并发问题

责任编辑:editor004 作者:Abel Avram |来源:企业网D1Net  2017-01-18 11:41:24 本文摘自:INFOQ

谷歌通过使用Go语言创建了一个新的Python运行时,解决了CPython中全局解释器锁(Global Interpreter Lock)导致的并发局限。

谷歌的YouTube前端和API使用Python开发,运行在CPython 2.7之上,CPython 2.7是Python解释器的参考实现。这些年来,Python代码已经增长到数百万行了,在经过对运行时进行性能调整之后一般表现良好。但是他们碰到了一个再三出现的问题。据谷歌透露:“并发负载在CPython上的表现并不好。”

在研究了许多其他可能的解决方案后,谷歌决定尝试在Go的运行时上面运行Python代码,因为它对并发性的强大支持。于是Grumpy项目诞生了。Grumpy可以将Python代码转换为Go源代码,然后将其编译为目标平台的本地代码。Go中间代码是一系列应用在Python对象数据结构上的操作。

因为它使用了编译,Grumpy牺牲了解释型语言所具有的一些的开发自由度和特性。但谷歌声称,静态分析带来了性能上的优化,通过简单的导入就可以使用Go的包,这两项好处弥补了上述的不足。

静态编译的另一个结果是Grumpy不支持并且将“可能永远不支持”CPython中可用的一些动态功能:exec、eval和compile,因为支持它们将需要“使用笨重而低效的编译工具链构建Grumpy程序”。虽然理论上可能,但是Grumpy团队表示,他们也不打算支持C扩展模块,因为“Grumpy的API和对象布局与CPython不同”。

Google试图用Grumpy替代CPython 2.7。有些人希望看到Grumpy在未来支持Python 3.x。在回答有关支持Python 3的问题时,YouTube的高级软件工程师Dylan Trotter说:“我们有一个大的Python 2.7代码库,所以这是我们一直关注的。我肯定想支持Python 3。”他还在另一个帖子中说,“近期没有Python 3的具体计划,但长期来说我肯定想要支持它。”

Google基于Apache 2.0许可在GitHub上开源Grumpy,邀请开发人员评论和贡献。 还为此设立了一个论坛。

查看英文原文:Google Solves CPython’s Concurrency Issues with Grumpy

关键字:GrumpyCPython

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^