shedskin--- 一种python性能优化工具

shedskin http://code.google.com/p/shedskin/

虽说python的性能在脚本语言中还算杰出,但是当程序中出现for,while循环或者函数递归调用的情况,其性能就下降的非常快。

比如,用递归方法计算fibonacci(33) ,C语言只要几毫秒,但python 就要10秒左右。

目前,已经有一些工具用于优化python的性能了,比如psyco,它可以做到JIT的优化。

shedskin采用了一种新的办法,即“翻译”。它把python代码翻译成C++,然后再编译成pyd(windows下),so(*nix下)模块。这样在其它python代码中,可以简单的import 编译好的模块,非常高效、方便。

我将递归求解的fibonacci函数用shedskin重新编译后,速度基本上和C语言版的持平。

PS:

发现shedskin在FreeBSD下的版本有个小bug---Makefile生成的时候会找不到-lpcre库。

需要对ss.py这个文件进行一些修改就可以了:

if sys.platform == 'darwin' and os.path.isdir('/usr/local/include'):
                line += ' -I/usr/local/include' # XXX

。。。。

if sys.platform == 'darwin' and os.path.isdir('/usr/local/lib'): # XXX
               line += ' -L/usr/local/lib'

。。。。

sys.platform == 'darwin'去掉即可。

shedskin当然也有缺点,就是它只能翻译仅使用python标准库子集的python程序(如下表):

  • bisect
  • collections
  • ConfigParser
  • copy
  • datetime
  • fnmatch
  • getopt
  • glob
  • math
  • os (some functionality missing under Windows)
  • os.path
  • random
  • re
  • socket
  • string
  • sys
  • time

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值