目錄
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伺服器經常使用,通重載入模組...