ABOUT ME

-

Today
-
Yesterday
-
Total
-
choco@desktop:~/tistory
$ 정보처리기사 요점정리
1과목 2과목 3과목 4과목 5과목 실기

$ Linux Kernel
Power Management DVFS
  • 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을 입력하고 나면 다음과 같이 걸린 시간 등이 나온다.

    코드를 최적화해가면서 결과값이 얼마나 차이나는지를 확인해가면 된다.

    댓글

Designed by Tistory.