python 운행 가속 방식

6224 단어 python운행 가속
총화
1.pypy 사용
2.함수 화 호출 감소
3.파일 의 열 림 즉 with 호출 을 줄 이 고 이 호출 을 for 순환 앞 에 두 고 뒤에 필요 한 곳 으로 전달 합 니 다.
4.if 함수 판단 조건 이 많은 것 은 가능 한 한 앞 에 있 습 니 다.
전면 가속(pypy)
2.전면 가속(pypy)
python 을 pypy 로 바 꾸 면 순수 python 코드 에서 pypy 의 호환성 은 사용 에 영향 을 주지 않 습 니 다.일부 순수 python 코드 는 자주 pypy 로 속 도 를 내기 때 문 입 니 다.
테스트 코드,for 10000000 회 순환

start = time.time()
for i in range(10000000):
    print(i,end="\r")
end = time.time()
print(f"    {end-start} >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
pypy 의 소모 시간 은:
在这里插入图片描述
python 은
在这里插入图片描述
대략 세 배 이지 만 순환 이 많 을 수록 빨 라 질 것 으로 추정 되 며 6 배 정도 된다 고 한다.
2.파일 의 열기 즉 with 호출 을 줄 입 니 다.
원래 코드 의 with 는 호출 함수 에서 매번 호출 함수 가 파일 을 열 고 닫 아야 하기 때문에 대량의 시간 이 소모 된다

def BMES(word,tag):
    with open(r"J:\PyCharm  \     \NLP  \NLP  \   \    
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()}" + "
") # 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)+"
") 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" {end-start} >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
시간 소모 결 과 는:
在这里插入图片描述
파일 열기 즉 with 호출 을 밖으로 내 보 냅 니 다.

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" {end-start} >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
시간 을 소모 하 다
在这里插入图片描述
결론:119 배 빨 라 졌 고 실제 가속 은 이 배수 보다 훨씬 크다.
3.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" + "
")
조건 을 만족 시 키 는 사람 은 먼저 판단 에서 벗 어 날 수 있다.
python 운행 가속 화 에 관 한 몇 가지 방법 에 관 한 글 은 여기까지 소개 되 었 습 니 다.더 많은 python 운행 가속 화 에 관 한 몇 가지 방법 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기