SW개발/Python
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을 입력하고 나면 다음과 같이 걸린 시간 등이 나온다.
코드를 최적화해가면서 결과값이 얼마나 차이나는지를 확인해가면 된다.
반응형