shedskin--- 一种python性能优化工具
2009-10-12 10:58
405 查看
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
虽说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
相关文章推荐
- The Python Profilers (python性能优化工具介绍)
- The Python Profilers (python性能优化工具介绍)
- Python 性能优化【1】-- Python 常用的性能分析工具
- python性能优化工具及方法
- SqlServer性能检测和优化工具使用详细
- Android性能优化之工具篇 — — 开发者选项
- mysql性能优化工具--tuner-primer使用介绍
- python性能优化指南
- Python性能优化的20条建议
- Python性能优化的20条建议
- Python性能优化的20条建议
- VTune 分析和优化程序性能的工具
- 性能优化工具---sar
- python性能优化指南
- Python性能优化的小细节
- 用Python编写分析Python程序性能的工具的教程
- android性能优化(3)—Eclipse MAT 工具的使用(a)
- Android性能优化之工具篇 — — Android Lint
- Python 代码性能优化
- Python 代码性能优化技巧分享