본문 바로가기

Python

효율적인 성능, 메모리, 사용성을 위한 파이썬 코드 사례

728x90
  1. 메모리를 낭비하지 마세요.
    1. 메모리 사용량 추적
    2. 메모리 누수 관리
  2. 보기 좋은 코드를 작성하세요 - 첫 인상이 모든 것을 결정합니다.
    1. 정적 코드 분석 도구 사용하기
    2. 적절한 코드 문서화
  3. 성능을 높이세요.
    1. Multi-thread 대신 Multiprocess를 사용하세요.
    2. 파이썬 최신 버전을 사용하기
    3. 가능한한 내장 함수 사용하기
    4. Ctypes 사용하기
    5. Cython 사용하기
    6. PyPy 사용하기
    7. 설계와 데이터 구조 : 모든 언어에 적용되는 사항입니다. 목적에 맞는 데이터 구조를 사용하는지, 적절한 곳에 변수를 선언했는지, 식별자의 범위를 올바로 사용했는지 확인하고 결과값이 정상적으로 나오더라도 항상 확인하기 등이 있습니다.
  4. 적절한 버전 사용하기
    1. pip 필수 요소 다루기
    2. 가상 환경 사용하기
    3. 프로젝트 버전 달기
  5. 코드 분석하기
    1. 성능, 품질, 검증을 위해서 코드 분석을 하는 것은 종종 도움이 되곤 합니다. 파이썬은 성능 평가를 위한 cProfile 모듈을 탑재하고 있습니다. cProfile은 코드의 총 실행시간을 알려줄뿐 아니라 개별 함수의 실행시간을 측정합니다. 어디서에서 최적화를 해야 하는지 쉽게 알 수 있도록 개별 함수가 얼마나 호출되었는지도 알려줍니다.
    2. memory_profiler는 프로세스의 메모리 사용량을 알려줄뿐아니라 줄(line)단위로 메모리 소비량을 확인할 수도 있습니다.
    3. objgraph은 파이썬 프로그램의 메모리에서 가장 많이 생성된 오브젝트를 순위대로 보여줍니다. 또한 일정 기간동안 어떤 오브젝트가 추가되고 삭제되었는지, 해당 오브젝트를 참조하는 스크립트를 모두 보여줍니다.
  6. 테스팅과 지속적 통합
    1. 테스팅 : 유닛 단위 테스트 수행은 아주 좋은 습관입니다. 코딩하기 전이나 코딩중에 테스트 계획을 짜는 것이 좋습니다. 파이썬은 여러분이 작성한 함수와 클래스들에 대해서 유닛 단위 테스트를 할 수 있도록 unittest모듈을 제공합니다.
    2. coverage 측정하기 : Coverage는 파이썬 프로그램의 코드 커버리지를 측정하는 도구입니다. 여러분이 작성한 프로그램을 모니터하고 코드의 어떤 부분이 실행되었고 실행되었어야 하지만 그렇지 않은 부분이 있는지 분석합니다.
      커러비지 측정은 대게 테스트 효율성을 측정하는데 사용됩니다. 커버리지 측정을 통해 어떤 코드가 테스트되었는지 알 수 있습니다.
    3. 지속적인 통합(CI; Continuous Integration) : 장기 프로젝트를 진행함에 있어 시작화 함께 CI 시스템을 갖추는 것은 매우 유용합니다. CI 서비스를 이용해서 코드의 커버리지를 쉽게 높일 수 있습니다.

[출처]
https://m.blog.naver.com/PostView.nhn?blogId=passion053&logNo=221112010085&proxyReferer=https:%2F%2Fwww.google.com%2F

728x90