-
Python 프로파일링SW개발/Python 2019. 4. 11. 19:10
Python 코드에서 실행이 오래 걸리는 부분을 알기 위해, cmd창에서 line_profiler를 설치한다. (cmd를 관리자 권한으로 실행해야 하며, 혹시 관리자 권한으로 실행하지 않은 경우 --user를 뒤에 붙여주면 설치된다.)
>> pip install line_profiler
라인 프로파일링을 하기 위해서는 해당 부분이 함수화되어있어야하기 때문에 전체 코드를 함수 안에 넣었다. 다음은 예시 코드이다. 원하는 함수 위에 @profile을 추가해준다.
@profile def main(): # 소수 미리 찾아두기 check = [False] * 1000001 check[0] = True; check[1] = True # 에라토스테네스의 체 for start in range(2, 1000000): for cae in range(start+start, 1000000, start): check[cae] = True # 거르기 print(sum(check)) T = int(input()) for tc in range(T): cnt = 0 # 르모앙의 추측 방법의 수 N = int(input()) # 홀수 소수 하나를 빼고, for prime in range(3, N, 2): if check[prime] == False:# 소수이면, temp = N - prime # 그 temp를 가지고 소수 곱인지 확인 if temp % 2 == 0 and check[temp//2] == False: cnt += 1 print(cnt) if __name__ == "__main__": main()
그리고 cmd창에서 해당 python 파일이 저장된 경로로 이동한다. (cd 폴더이름)
프로파일링 실행은 cmd 창에서 다음과 같이 명령어를 입력하면 된다.
>> python -m kernprof -v -l "파이썬 파일 이름.py"
위의 코드는 인풋이 필요했기 때문에 input을 입력하고 나면 다음과 같이 걸린 시간 등이 나온다.
코드를 최적화해가면서 결과값이 얼마나 차이나는지를 확인해가면 된다.
'SW개발 > Python' 카테고리의 다른 글
pyinstaller error (matplot lib 버전 문제) (0) 2020.12.03 Python 숏코딩을 위한 팁 정리 (2) 2020.01.23 파이썬에서 리스트를 함수 인자로 받는 경우 - 전역 변수의 문제 (0) 2019.02.23 댓글