[Python] Object class __slots__를 이용한 성능 개선
·
Python/Python
[Python] Object class __slots__를 이용한 성능 개선 0. 개요 Python에서는 Object attribute에 대해서 메모리는 더 적게 사용, 접근 속도는 더 빠르게 하는 방법이 있습니다. 바로, __slots__ 를 사용하는 방법 입니다. 기본적으로 Python은 객체 인스턴스 속성을 Dict를 사용 생성하며 Dict 형은 메모리를 추가적으로 필요로 합니다. slots 을 사용 하는 경우 class는 __dict__, __weakref__ 생성을 하지 않습니다. It restricts the valid set of attribute names on an object to exactly those names listed. Since the attributes are now fi..
[Python] 프로파일링 cProfile, memory_profiler
·
Python/Python
프로파일링으로 병목지점 찾기 cProfile 감으로 코드를 작성하는 습관을 버리고 가설을 세우고 프로파일링을 통한 검증으로 코드를 작성해라. 이는 시간을 투자 할만한 가치가 충분하고 코드 작성의 근거가 될 수 있다. cProfile 테스트 테스트 코드 피보나치 수열을 dp와 recursion 으로 구현한 함수 def fibonacci_dp(n): dp = [0, 1] for i in range(2, n + 1): dp.append(dp[i - 1] + dp[i - 2]) return dp[n] def fibonacci_recursion(n): if n python -m cProfile -s cumulative High-Performance-Python\2-프로파일링으로-병목지점-찾기\2-1-cProfil..