欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python運行加速的幾種方式

 更新時間:2021年07月13日 08:30:48   作者:python__reported  
Python運行的慢是歷來被詬病的,本文就來介紹一下python運行加速的幾種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、總結

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

二、全面加速(pypy)

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

測試代碼,for循環(huán)10000000次

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

pypy的耗時為:

在這里插入圖片描述

而python耗時為

在這里插入圖片描述

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

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

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

def BMES(word,tag):
    with open(r"J:\PyCharm項目\學習進行中\(zhòng)NLP教程\NLP教程\數(shù)據集\詞性標注\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")

#后續(xù)在多個if-elif-else中調用

耗時為

在這里插入圖片描述

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

將with放在循環(huán)前面


在這里插入圖片描述

將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 2<len(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 2<len(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倍,而實際加速遠遠大于這個倍數(shù)

三、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運行加速的幾種方式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python迭代器與生成器及作用示例詳解

    Python迭代器與生成器及作用示例詳解

    Python生成器在內存管理、延遲計算、生成無限序列以及提高代碼簡潔性和可讀性方面都具有重要作用,這篇文章主要介紹了Python迭代器與生成器示例詳解,需要的朋友可以參考下
    2024-02-02
  • Python語言中Tuple的由來分析

    Python語言中Tuple的由來分析

    Tuple在Python中表示一種“大小固定的有序序列”,這篇文章主要介紹了Python語言中Tuple的由來,需要的朋友可以參考下
    2022-09-09
  • 用openCV和Python 實現(xiàn)圖片對比,并標識出不同點的方式

    用openCV和Python 實現(xiàn)圖片對比,并標識出不同點的方式

    今天小編就為大家分享一篇用openCV和Python 實現(xiàn)圖片對比,并標識出不同點的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python實現(xiàn)自動訪問網頁的例子

    Python實現(xiàn)自動訪問網頁的例子

    今天小編就為大家分享一篇Python實現(xiàn)自動訪問網頁的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python list數(shù)據等間隔抽取并新建list存儲的例子

    python list數(shù)據等間隔抽取并新建list存儲的例子

    今天小編就為大家分享一篇python list數(shù)據等間隔抽取并新建list存儲的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • pycharm社區(qū)版安裝django并創(chuàng)建一個簡單項目的全過程

    pycharm社區(qū)版安裝django并創(chuàng)建一個簡單項目的全過程

    社區(qū)版的pycharm跟專業(yè)版的pycharm應用差別還是不太大,下面這篇文章主要給大家介紹了關于pycharm社區(qū)版安裝django并創(chuàng)建一個簡單項目的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • python實現(xiàn)定時發(fā)送qq消息

    python實現(xiàn)定時發(fā)送qq消息

    這篇文章主要為大家詳細介紹了python實現(xiàn)定時發(fā)送qq消息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python中__init__.py文件的作用

    Python中__init__.py文件的作用

    這篇文章主要介紹了Python中__init__.py文件的作用,在PyCharm中,帶有__init__.py這個文件的目錄被認為是Python的包目錄,與普通目錄的圖標有不一樣的顯示
    2022-09-09
  • python如何做代碼性能分析

    python如何做代碼性能分析

    這篇文章主要介紹了python如何做代碼性能分析,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-04-04
  • python自動腳本的pyautogui入門學習

    python自動腳本的pyautogui入門學習

    這篇文章主要介紹了python自動腳本的pyautogui入門學習,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04

最新評論