python语言使用编译方式_采用Psyco实现python执行速度提高到与编译语言一样的水平...

本文实例讲述了采用Psyco实现python执行速度提高到与编译语言一样的水平的方法,分享给大家供大家参考。具体实现方法如下:

一、安装Psyco很简单,它有两种安装方式,一种是源码方式,一种是二进制码方式:

如果用源码方式安装,你需在源码的目录中调用python setup.py install命令编译生成psyco子目录,再把该子目录整个拷贝到python的site-packages目录下。

如果用二进制码方式安装,按这个网址列表中的python与psyco版本对应表下载合适的二进制文件,解压后会生成一个psyco-1.x的目录,把该目录下的psyco目录整个拷贝到python的site-packages目录下即可。

二、使用说明,在需要做效率优化的源文件前面加入以下两句:

import psyco

psyco.full()

另外,使用psyco.profile()可以对大程序进行适当分析,以确定哪些函数最值得编译。

psyco.log()函数用来记录profile()得到的信息,下次就可以运行就能更快一点。

psyco.bind(myfunc)指定对函数myfunc进行编译,可以做到比full()更精细的控制。

psyco.proxy(f)创建一个新的函数,它的代码是由f编译得到二进制码

三、例子:psyco_test.py文件代码如下:

#!/usr/bin/python

# 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.py

TestA(): 4.41s

TestB(): 1.63s

使用psyco处理过的函数执行速度快了4倍左右, 跟作者宣称的差不多。

希望本文所述对大家的Python程序设计有所帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值