python运行加速的方法是什么

python运行加速的方法是什么

本篇内容主要讲解“python运行加速的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python运行加速的方法是什么”吧!

一、总结

1、使用pypy
2、减少函数化调用
3、减少文件的打开即with的调用,将这一调用放在for循环前面,然后传递至后面需要用到的地方
4、if函数判断条件多的尽量在前面
全面加速(pypy)

二、全面加速(pypy)

将python换为pypy,在纯python代码下,pypy的兼容性就不影响使用了,因为一些纯python的代码常常会用pypy进行一下加速

测试代码,for循环10000000次

start=time.time()foriinrange(10000000):print(i,end="")end=time.time()print(f"耗费时间{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

pypy的耗时为:


而python耗时为


大致三倍,但是循环越多估计越快,据说有6倍左右

二、减少文件的打开即with的调用

原代码的with在调用函数内,即每次调用函数都要打开并关闭文件,造成大量耗时

defBMES(word,tag):withopen(r"J:PyCharm项目学习进行中NLP教程NLP教程数据集词性标注ature2ner.txt","a+",encoding="utf-8")asf_:iflen(word)==1:"""单字"""f_.write(word+""+f"S-{tag.upper()}"+"")else:"""多字"""forindex,word_inenumerate(word):ifindex==0:f_.write(word_+""+f"B-{tag.upper()}"+"")elif0<index<len(word)-1:f_.write(word_+""+f"M-{tag.upper()}"+"")else:f_.write(word_+""+f"E-{tag.upper()}"+"")#后续在多个if-elif-else中调用

耗时为


tqdm预估时间在15~25个小时左右跳动

将with放在循环前面



将with的内容作为f_传递进来

后的耗时为:

测试如下:

importos,warnings,time,tqdmdeftxt(word):withopen("ceshi.txt","a+",encoding="utf-8")asf:iflen(str(word))<=2:word+=100f.write(str(word)+"")elif2<len(str(word))<=4:word+=200f.write(str(word)+"")else:f.write(str(word)+"")if__name__=="__main__":start=time.time()foriintqdm.tqdm(range(100000)):txt(i)end=time.time()print(f"耗费时间{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

耗时结果为:


将文件的打开即with的调用放在外面

importos,warnings,time,tqdmdeftxt(f,word):iflen(str(word))<=2:word+=100f.write(str(word)+"")elif2<len(str(word))<=4:word+=200f.write(str(word)+"")else:f.write(str(word)+"")if__name__=="__main__":start=time.time()withopen("ceshi.txt","a+",encoding="utf-8")asf:foriintqdm.tqdm(range(100000)):txt(f,i)end=time.time()print(f"耗费时间{end-start}秒>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")

耗时为


结论:快了119倍,而实际加速远远大于这个倍数

三、if判断靠前

如:

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

满足条件的可以先跳出判断

到此,相信大家对“python运行加速的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

发布于 2022-03-29 22:35:28
收藏
分享
海报
0 条评论
36
上一篇:python多值参数的实例分析 下一篇:使用Docker+jenkins+python3环境搭建的方法
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码