• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 采用Psyco实现python执行速度提高到与编译语言一样的水平

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

作者:shichen2014 字体:[增加 减小] 来源:互联网

shichen2014 通过本文主要向大家介绍了python psyco,psyco,psyco pass,psyco girl,psyco下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

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

二、使用说明,在需要做效率优化的源文件前面加入以下两句:
psyco.full()</div>
另外,使用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)))</div>

运行结果如下:

TestA(): 4.41s
TestB(): 1.63s</div>

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

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

</div>

您可能想查找下面的文章:

  • Python下使用Psyco模块优化运行速度
  • 利用Psyco提升Python运行速度
  • 采用Psyco实现python执行速度提高到与编译语言一样的水平

相关文章

  • Python的Django中django-userena组件的简单使用教程
  • 浅谈Python中用datetime包进行对时间的一些操作
  • 在Python中操作字符串之replace()方法的使用
  • Python实现计算文件夹下.h和.cpp文件的总行数
  • python实现复制整个目录的方法
  • 在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
  • python实现获取客户机上指定文件并传输到服务器的方法
  • Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
  • Python日期操作学习笔记
  • Python编写简单的HTML页面合并脚本

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python的Django框架中的URL配置与松耦合
    • python进程类subprocess的一些操作方法例子
    • python协程用法实例分析
    • python网络编程学习笔记(10):webpy框架
    • django1.8使用表单上传文件的实现方法
    • 使用Python编写一个简单的tic-tac-toe游戏的教程
    • Python中获取对象信息的方法
    • python实现端口转发器的方法
    • Python三元运算实现方法
    • Python对list列表结构中的值进行去重的方法总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有