国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

采用Psyco實現python執行速度提高到與編譯語言一樣的水平

2019-11-25 18:08:35
字體:
來源:轉載
供稿:網友

本文實例講述了采用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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜昌市| 崇明县| 阿鲁科尔沁旗| 石嘴山市| 阿荣旗| 铜山县| 上思县| 集贤县| 突泉县| 灯塔市| 运城市| 隆德县| 中卫市| 灌南县| 曲水县| 天门市| 漠河县| 方城县| 贵州省| 读书| 普陀区| 郓城县| 沙坪坝区| 普兰店市| 通化市| 台南市| 长岭县| 易门县| 玉屏| 合江县| 邵东县| 南阳市| 本溪市| 景宁| 阳山县| 浑源县| 无为县| 仪陇县| 陆川县| 休宁县| 乌兰察布市|