Python下使用Psyco模块优化运行速度
今天介绍下Psyco模块,Psyco模块可以使你的Python程序运行的像C语言一样快。
都说Python语言易用易学,但性能上跟一些编译语言(如C语言)比较要差不少,这里可以用C语言和Python语言各编写斐波纳契数列计算程序,并计算运行时间:
C语言程序
intfib(intn){ if(n<2) returnn; else returnfib(n-1)+fib(n-2); } intmain(){ fib(40); return0; }
Python写的
deffib(n): ifn<2: returnn else: returnfib(n-1)+fib(n-2) fib(40)
运行时间
$time./fib 3.099s $timepythonfib.py 16.655s
可以看到运行时间还是有点差距的,这里的差距大概是5倍左右,现在就介绍Psyco:
Psyco是Python语言的一个扩展模块,可以即时对程序代码进行专业的算法优化,可以在一定程度上提高程序的执行速度,尤其是在程序中有大量循环操作时。最早被ArminRigo开发,后来由ChristianTismer维护并继续完善。
Psyco可以在32位元的GNU/Linux、BSD、MacOSX、MicrosoftWindows平台上运行。Psyco使用C语言编写,只针对32位元平台进行了编码。目前开发工作已经停止,由PyPy所接替,同时PyPy也提供针对64位元系统的支持。Psyco可以在Python解释器编译代码时自动优化,将其使用C实现,并针对循环操作进行一些特殊的优化。经过这些优化,程序的性能将会得到提升,在跨平台环境下尤为明显。
安装Psyco
sudoapt-getinstallpython-psyco
或者到官网上下载安装包,使用easyinstall安装即可。
使用Psyco模块
importpsyco psyco.full() deffib(n): ifn<2: returnn else: returnfib(n-1)+fib(n-2) fib(40)
运行结果
$timepythonfib.py 3.190s
改善你的代码
现在将我大部分Python代码加上下列脚本来利用Psyco提升运行速度:
try: importpsyco psyco.full() exceptImportError: pass#psyconotinstalledsocontinueasusual