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 운행 가속 화 에 관 한 몇 가지 방법 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.