采用Psyco实现python执行速度提高到与编译语言一样的水平
2014-10-11 12:13
567 查看
本文实例讲述了采用Psyco实现python执行速度提高到与编译语言一样的水平的方法,分享给大家供大家参考。具体实现方法如下:
一、安装Psyco很简单,它有两种安装方式,一种是源码方式,一种是二进制码方式:
如果用源码方式安装,你需在源码的目录中调用python setup.py install命令编译生成psyco子目录,再把该子目录整个拷贝到python的site-packages目录下。
如果用二进制码方式安装,按这个网址列表中的python与psyco版本对应表下载合适的二进制文件,解压后会生成一个psyco-1.x的目录,把该目录下的psyco目录整个拷贝到python的site-packages目录下即可。
二、使用说明,在需要做效率优化的源文件前面加入以下两句:
psyco.full()
另外,使用psyco.profile()可以对大程序进行适当分析,以确定哪些函数最值得编译。
psyco.log()函数用来记录profile()得到的信息,下次就可以运行就能更快一点。
psyco.bind(myfunc)指定对函数myfunc进行编译,可以做到比full()更精细的控制。
psyco.proxy(f)创建一个新的函数,它的代码是由f编译得到二进制码
三、例子:
psyco_test.py文件代码如下:
# Filename:psyco_test.py
import math, timeit, psyco
def TestA():
res, loopcnt = 0.0, 100
for i in range(loopcnt):
for j in range(loopcnt):
for k in range(loopcnt):
res = res + math.sin(i + j + k)
if __name__ == '__main__':
TestB = psyco.proxy(TestA)
ta = timeit.Timer("TestA()", "from __main__ import TestA")
tb = timeit.Timer("TestB()", "from __main__ import TestB")
print ("TestA(): %.2fs" % (ta.timeit(10)))
print ("TestB(): %.2fs" % (tb.timeit(10)))
运行结果如下:
复制代码 代码如下: jobin@jobin-desktop:~/work/python/psyco$ python psyco_test.pyTestA(): 4.41s
TestB(): 1.63s
使用psyco处理过的函数执行速度快了4倍左右, 跟作者宣称的差不多。
希望本文所述对大家的Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- 采用Psyco实现python执行速度提高到与编译语言一样的水平
- Android Studio开发APP提高编译执行速度
- Sikuli在PyCharm内实现jython/python语言的调试、执行的设置
- 利用ctypes提高Python的执行速度
- Python优化技巧之利用ctypes提高执行速度
- 关注下micropython1.4.5的pendsv.C以及如何提高编译速度
- 利用pypy提高python脚本的执行速度及测试性能 推荐
- Python利用ctypes提高执行速度
- python可以提高程序执行速度N倍你知道吗?
- springboot采用Docker容器化,实现可执行jar文件编译成镜像以及镜像的发布
- cmake: 使用jom实现msvc工程并发编译提高速度(-j)
- Python优化技巧之利用ctypes提高执行速度
- [JAVA语言学习][小技巧]利用Batch批处理脚本实现控制台快速编译执行JAVA程序
- PL/0语言编译程序整理实现:(8)、代码执行
- 通过采用Squid的反向代理功能提高客户端对网站的浏览速度
- 如何提高asp的SQL的执行效率提高数据库读取速度
- 自定义C结构,一种新的提高ruby代码执行速度的方法:cplusruby
- Java执行速度大幅提高
- Sun发布J2se6.0 Beta 提高Java执行速度
- 将存储过程执行速度提高了30倍