【移動(dòng)應(yīng)用開發(fā)技術(shù)】python運(yùn)行加速的方法是什么_第1頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】python運(yùn)行加速的方法是什么_第2頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】python運(yùn)行加速的方法是什么_第3頁
【移動(dòng)應(yīng)用開發(fā)技術(shù)】python運(yùn)行加速的方法是什么_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】python運(yùn)行加速的方法是什么

本篇內(nèi)容主要講解“python運(yùn)行加速的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓在下來帶大家學(xué)習(xí)“python運(yùn)行加速的方法是什么”吧!1、使用pypy2、減少函數(shù)化調(diào)用3、減少文件的打開即with的調(diào)用,將這一調(diào)用放在for循環(huán)前面,然后傳遞至后面需要用到的地方4、if函數(shù)判斷條件多的盡量在前面全面加速(pypy)將python換為pypy,在純python代碼下,pypy的兼容性就不影響使用了,因?yàn)橐恍┘僷ython的代碼常常會(huì)用pypy進(jìn)行一下加速測(cè)試代碼,for循環(huán)10000000次start

=

time.time()

for

i

in

range(10000000):

print(i,end="")

end

=

time.time()

print(f"耗費(fèi)時(shí)間{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")pypy的耗時(shí)為:而python耗時(shí)為大致三倍,但是循環(huán)越多估計(jì)越快,據(jù)說有6倍左右原代碼的with在調(diào)用函數(shù)內(nèi),即每次調(diào)用函數(shù)都要打開并關(guān)閉文件,造成大量耗時(shí)def

BMES(word,tag):

with

open(r"J:PyCharm項(xiàng)目學(xué)習(xí)進(jìn)行中NLP教程N(yùn)LP教程數(shù)據(jù)集詞性標(biāo)注

ature2ner.txt","a+",encoding="utf-8")as

f_:

if

len(word)

==

1:

"""單字"""

f_.write(word

+

"

"

+

f"S-{tag.upper()}"

+

"

")

else:

"""多字"""

for

index,

word_

in

enumerate(word):

if

index

==

0:

f_.write(word_

+

"

"

+

f"B-{tag.upper()}"

+

"

")

elif

0

<

index

<

len(word)

-

1:

f_.write(word_

+

"

"

+

f"M-{tag.upper()}"

+

"

")

else:

f_.write(word_

+

"

"

+

f"E-{tag.upper()}"

+

"

")

#后續(xù)在多個(gè)if-elif-else中調(diào)用耗時(shí)為tqdm預(yù)估時(shí)間在15~25個(gè)小時(shí)左右跳動(dòng)將with放在循環(huán)前面如將with的內(nèi)容作為f_傳遞進(jìn)來后的耗時(shí)為:測(cè)試如下: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)+"

")

elif

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

word+=200

f.write(str(word)+"

")

else:

f.write(str(word)

+

"

")

if

__name__=="__main__":

start

=

time.time()

for

i

in

tqdm.tqdm(range(100000)):

txt(i)

end

=

time.time()

print(f"耗費(fèi)時(shí)間{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")耗時(shí)結(jié)果為:將文件的打開即with的調(diào)用放在外面import

os,

warnings,time,tqdm

def

txt(f,word):

if

len(str(word))<=2:

word+=100

f.write(str(word)+"

")

elif

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

word+=200

f.write(str(word)+"

")

else:

f.write(str(word)

+

"

")

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"耗費(fèi)時(shí)間{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")耗時(shí)為結(jié)論:快了119倍,而實(shí)際加速遠(yuǎn)遠(yuǎn)大于這個(gè)倍數(shù)如:

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論