免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 20968 | 回复: 50

中间有google掺和的被LLVM加强火力的Python [复制链接]

论坛徽章:
0
发表于 2009-09-08 18:38 |显示全部楼层
http://code.google.com/p/unladen-swallow/

http://developer.51cto.com/art/200907/136422.htm
Unladen Swallow 2009 Q2项目将作为CPython运行库的一个分支来实现,使之和平常的Python程序与原生扩展实现完整的原始兼容。

查看:http://code.google.com/p/unladen-swallow/wiki/Release2009Q2

Google的Python工程师们公布了一个新项目:Unladen Swallow,它目的是给Python编程语言带来性能上的提升,这些提升主要是通过提高了5倍的运行库速度来实现。该项目将作为CPython运行库的一个分支来实现,使之和平常的Python程序与原生扩展实现完整的原始兼容。

这到最后将改进整个Python的性能。Unladen Swallow项目的目标是使用LLVM(低级虚拟机)编译器基础结构来建立一个JIT(实时)编译引擎,该引擎可以取代Python自身的虚拟机。该计划将使得把Python过渡到基于寄存器的虚拟机上成为可能,而且为未来的优化铺平道路。

采用LLVM还可以为Python代码整合其他语言敞开大门,因为基础的LLVM中间级代理很大程度上属于语言中立性。

http://www.javaeye.com/news/8912-unladen-swallow-2009q2-released
什么是Unladen Swallow?简而言之就是一个新的python的实现(目的是提升python的性能),是由google赞助的,详细的介绍可以看这里:
http://code.google.com/p/unladen-swallow/wiki/ProjectPlan

今天它发布了2009 Q2,也就是它的计划的第二个阶段的成果。

主要的更新有:

1 使用llvm来将一些hot functions编译成本地代码。而且-j选项也可以强制编译为本地代码。

2 相对于2009Q1 性能有了很大的提升。

3 一堆bug被fix。

4 测试更加广泛,比如在Twisted, Django, NumPy 和Swig都进行了测试。


这个版本最大的特性,其实就是通过llvm提供jit。。

详细的更新以及测试可以看这边:
http://code.google.com/p/unladen-swallow/wiki/Release2009Q2

论坛徽章:
0
发表于 2009-09-08 18:40 |显示全部楼层
我已经在很多地方使用Python而不是C++了,因为敲键盘次数更少,速度?哈哈,看上面。反编译?你开玩笑?你反LLV一下试试看。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2009-09-08 23:21 |显示全部楼层
不懂python,不过据说挺流行的,习惯了shell/awk/sed,它们也能干很多事情
bc语言用来计算也是棒级了,但很少有人去用
这些工具对我来说已经足够棒了

论坛徽章:
0
发表于 2009-09-09 22:18 |显示全部楼层
shell/awk/sed对我来说学习成本有些高,而且我要考虑新进员工的学习成本,如何快速进入开发状态。
再者,我要考虑保密性,脚本的保密性是不行的,传统的Python也是不行的,LLV加强火力之后就OK了。bc awk sed这些工具我可以在Python里面调用。
Python的好处是我可以拿他来做主力开发语言,这样代码也统一,不会很多种语言,造成项目管理起来麻烦。
通过对比,PHP好像不适合做通用开发,而Web在我们的产品中分量很小。Ruby呢?和Perl一样的魔幻,我喜欢简单直接的,不喜欢炫的,因为我们开发要考虑人力成本和交流成本的,我不希望代码是不可交流的。Lua呢?有些太小了,无法很好的独立使用。TCL就算了,剩下的我不了解。
Python的好处在于代码量比C++少很多,而且可以作为一种通用语言,复杂程度又和C差不多简单直接,性能呢?LLV加强之后又会差距不大,而且我有时间的话也可以自己把Python改成编译型的,所以,就Python了。
Python程序员比C程序员好培养,而我只需要在Python虚拟机上手脚一下,就可以让一般Python程序员的生产力水平和比较高的C程序员差不多。

论坛徽章:
0
发表于 2009-09-09 23:26 |显示全部楼层
本来我写了一些代码生成器,因为我实在不想重复的写着“客户的需求”,引擎+脚本的实现大大解放了我的思考,但是,还不够,我要进一步解放思想,发展生产力。
每天还要买菜,洗菜,做饭,炒菜,洗碗,刷锅,洗衣服,拖地,还要看孩子,我那么忙,哪儿有时间写那么多无聊的代码啊?不自动化我能活么?

[ 本帖最后由 prolj 于 2009-9-9 23:47 编辑 ]

论坛徽章:
0
发表于 2009-09-11 11:50 |显示全部楼层
现在已经考虑兼容带孩子了?
实时编译引擎是把代码最终整成机器代码吗?

论坛徽章:
0
发表于 2009-09-11 20:15 |显示全部楼层
不转换为机器码,只是不再生成pyc,而生成llvm bitcode,由lli来解释执行,传统的python vm就没事了。
洗衣服真累,我就是不喜欢用洗衣机。看孩子更累,哎,小家伙精力旺盛啊。

论坛徽章:
0
发表于 2009-09-11 23:57 |显示全部楼层

回复 #7 prolj 的帖子

只是不再生成pyc,而生成llvm bitcode,由lli来解释执行,传统的python vm就没事了
====
好强大

论坛徽章:
0
发表于 2009-09-12 00:00 |显示全部楼层
一直以来搞的llvm终于用上了

论坛徽章:
0
发表于 2009-09-13 00:22 |显示全部楼层
google是一个有灵性的公司,在众多的阵地向垄断的微软开始进攻,google在搜索方面的垄断让我担忧,他会不会推行霸权主义,mysql走向商业公司,现在在oracle下成为鸡肋,被商业毁掉了。众所周知python因为支持桌面共享计算的BT而成名,希望google不要毁掉python。
寄存器虚拟机lua早就使用了,不过指令很简单只有37条,原来我也看不上寄存器虚拟机,现在看来perl6的parrot、python都开始有所应用了,java也有寄存器虚拟机的实现,好像就是google搞的,java平台很混乱,多种前端、后端的非官方实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP