婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python運行加速的幾種方式

python運行加速的幾種方式

熱門標簽:銀川電話機器人電話 電銷機器人錄音要學習什么 企業彩鈴地圖標注 預覽式外呼系統 長春極信防封電銷卡批發 外賣地址有什么地圖標注 如何地圖標注公司 煙臺電話外呼營銷系統 上海正規的外呼系統最新報價

一、總結

1、使用pypy
2、減少函數化調用
3、減少文件的打開即with的調用,將這一調用放在for循環前面,然后傳遞至后面需要用到的地方
4、if函數判斷條件多的盡量在前面
全面加速(pypy)

二、全面加速(pypy)

將python換為pypy,在純python代碼下,pypy的兼容性就不影響使用了,因為一些純python的代碼常常會用pypy進行一下加速

測試代碼,for循環10000000次

start = time.time()
for i in range(10000000):
    print(i,end="\r")
end = time.time()
print(f"耗費時間{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

pypy的耗時為:


而python耗時為


大致三倍,但是循環越多估計越快,據說有6倍左右

二、減少文件的打開即with的調用

原代碼的with在調用函數內,即每次調用函數都要打開并關閉文件,造成大量耗時

def BMES(word,tag):
    with open(r"J:\PyCharm項目\學習進行中\NLP教程\NLP教程\數據集\詞性標注\nature2ner.txt","a+",encoding="utf-8")as f_:
        if len(word) == 1:
            """單字"""
            f_.write(word + " " + f"S-{tag.upper()}" + "\n")
        else:
            """多字"""
            for index, word_ in enumerate(word):
                if index == 0:
                    f_.write(word_ + " " + f"B-{tag.upper()}" + "\n")
                elif 0  index  len(word) - 1:
                    f_.write(word_ + " " + f"M-{tag.upper()}" + "\n")
                else:
                    f_.write(word_ + " " + f"E-{tag.upper()}" + "\n")

#后續在多個if-elif-else中調用

耗時為


tqdm預估時間在15~25個小時左右跳動

將with放在循環前面



將with的內容作為f_傳遞進來

后的耗時為:

測試如下:

import os, warnings,time,tqdm
def txt(word):
    with open("ceshi.txt","a+",encoding="utf-8")as f:
        if len(str(word))=2:
            word+=100
            f.write(str(word)+"\n")
        elif 2len(str(word))=4:
            word+=200
            f.write(str(word)+"\n")
        else:
            f.write(str(word) + "\n")
if __name__=="__main__":
    start = time.time()
    for i in tqdm.tqdm(range(100000)):
        txt(i)
    end = time.time()
    print(f"耗費時間{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

耗時結果為:


將文件的打開即with的調用放在外面

import os, warnings,time,tqdm
def txt(f,word):

        if len(str(word))=2:
            word+=100
            f.write(str(word)+"\n")
        elif 2len(str(word))=4:
            word+=200
            f.write(str(word)+"\n")
        else:
            f.write(str(word) + "\n")
if __name__=="__main__":
    start = time.time()
    with open("ceshi.txt", "a+", encoding="utf-8")as f:
        for i in tqdm.tqdm(range(100000)):

            txt(f,i)
    end = time.time()
    print(f"耗費時間{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

耗時為


結論:快了119倍,而實際加速遠遠大于這個倍數

三、if判斷靠前

如:

 if tag in ["nts", "nto", "ntc", "ntcb", "ntcf", "ntch", "nth", "ntu", "nt"]:
                                BMES(f_,i2, tag="ORG")
                            elif tag in ["nb", "nba", "nbc", "nbp", "nf", "nm", "nmc", "nhm", "nh"]:
                                BMES(f_,i2, tag="OBJ")
                            elif tag in ["nnd", "nnt", "nn"]:
                                BMES(f_,i2, tag="JOB")
                            elif tag in ["nr", "nrf"]:
                                BMES(f_,i2, tag="PER")
                            elif tag in ["t"]:
                                BMES(f_,i2, tag="TIME")
                            elif tag in ["ns", "nsf"]:
                                BMES(f_,i2, tag="LOC")
                            else:
                                for i3 in list(i2):
                                    f_.write(i3 + " " + f"O" + "\n")

滿足條件的可以先跳出判斷

到此這篇關于python運行加速的幾種方式的文章就介紹到這了,更多相關python運行加速的幾種方式內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python入門課程第二講之怎么運行Python
  • Python運行第一個PySide2的窗體程序
  • Python命令行運行文件的實例方法
  • python腳本打包后無法運行exe文件的解決方案
  • 沒有安裝Python的電腦運行Python代碼教程

標簽:盤錦 湖北 佳木斯 珠海 宜昌 西寧 上饒 潮州

巨人網絡通訊聲明:本文標題《python運行加速的幾種方式》,本文關鍵詞  python,運行,加速,的,幾種,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python運行加速的幾種方式》相關的同類信息!
  • 本頁收集關于python運行加速的幾種方式的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 保定市| 沈丘县| 河池市| 宝应县| 沙坪坝区| 乐亭县| 日喀则市| 景谷| 镇原县| 阳江市| 秭归县| 洛川县| 阿拉尔市| 醴陵市| 台湾省| 岑溪市| 台中县| 兰州市| 崇州市| 吴堡县| 蒙山县| 灯塔市| 信宜市| 台前县| 辰溪县| 武陟县| 盘锦市| 织金县| 武定县| 溧阳市| 军事| 新营市| 睢宁县| 项城市| 郁南县| 明光市| 济阳县| 深州市| 利川市| 山西省| 图片|