python執行加速的幾種方式

2022-09-25 11:57:13 字數 2276 閱讀 8442

目錄

1、使用pypy

2、減少函式化呼叫

3、減少檔案的開啟即with的呼叫,將這一呼叫放在for迴圈前面,然後傳遞至後面需要用到的地方

4、if函式判斷條件多的盡量在前面

全面加速(pypy)

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

測試**,for迴圈10000000次

start = time.time()

for i in range(10

print(i,end="\r")

end = time.time()

print(f">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

pypy的耗時為:

而python耗時為

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

原**的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-" + "\n")

else:

"""多字"""

for index, word_ in enumerate(word):

if index == 0:

f_.write(word_ + " " + f"b-" + "\n")

elif 0 < index < len(word) - 1:

f_.write(word_ + " " + f"m-" + "\n")

else:

f_.write(word_ + " " + f"e-" + "\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 2>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

耗時結果為:

將檔案的開啟即with的呼叫放在外面

import os, warnings,time,tqdm

def txt(f,word):

if len(str(word))<=2:

word+=100

f.write(str(word)+"\n")

elif 2>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

耗時為結論:快了119倍,而實際加速遠遠大於這個倍數

如: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")

www.cppcns.com elif tag in ["nnd", "nnt", "nn"]:

bmes(f_,i2, tag="jobconqlsqat")

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的幾種方式

源 位元組碼 執行時 m.py m.pyc pvm pvm是python虛擬機器,用於解釋編譯得到的 使用互動命令執行python 在linux shell 下輸入python 2 輸入 print hello wolrd ctrl d退出 執行模組檔案 編輯script.py 檔案如下 frist...

python執行JS的幾種方式

安裝nodejs 安裝pyexecjs pip install pyexecjs 檢測執行環境 import execjs execjs.get name output node.js v8 簡單js,直接呼叫 import execjs e execjs.eval js 複雜js,compile後...

PHP的幾種執行方式

前四種是提供給web伺服器來處理php 檔案,其中模組載入的方式其實是最快的的,但fastcgi配合nginx web服務是目前的主流,下面主要配合apache做說明。以模組載入的方式執行,其實就是將php整合到web伺服器,以同乙個程序執行。此執行模式在使用apache伺服器經常使用,通重載入模組...