본문 바로가기
반응형

통계, 개발, 데이타/Python3

파이썬(python) 로깅하기 - import logging #1 파이썬에는 기본적인 logging 모듈을 제공합니다. 아래는 logging 모듈의 기본 개념과 사용법을 정리하였습니다. 기본적인 파일 내 로그 출력 방법 import logging import submodule # 'myrootlogger' 이름의 로거 생성 logger = logging.getLogger('myrootlogger') logger.setLevel(logging.DEBUG) # 로깅 파일 핸들러 file_handler = logging.FileHandler('loghere.log') logger.addHandler(file_handler) logger.info('logging - info') logger.debug('logging - debug') logging 모듈을 import 하고 g.. 2021. 7. 10.
파이썬(python) cProfile 사용법 프로파일링은 함수의 호출, 반환, 예외를 추적하고, 각 함수 호출과 이벤트를 추적합니다. 프로파일링으로 상대적으로 리소스를 많이 소비되는 부분을 찾아서 성능 개선에 집중할 수 있습니다. 파이썬은 인터프리터 언어로 프로파일링에 상대적으로 적은 자원이 소비됩니다. 파이썬(python)에서는 표준 라이브러리로 cProfile, profile을 제공하는데, 이번 포스트에서는 cProfile의 사용법을 확인해 보겠습니다. 파이썬 버전은 비교적 최신 버전은 3.8을 다룹니다. import cProfile def mysum(num): return sum( [i for i in range(num)]) def sum_of_mysum(num): return [ mysum(i) for i in range(1,num) ] #.. 2021. 7. 6.
파이썬(python) multiprocessing 전문 개발자가 아닌 상황에서 데이타 가공, 분석 또는 자동화된 테스트를 목적으로 파이썬을 주로 사용해왔습니다. 자연히 다수의 멀티프로세스를 사용할 일이 없었습니다. 하지만 이번에 랜덤 상황을 시뮬레이션 해볼 문제가 있어서 멀티 프로세싱 모듈을 사용해 보았습니다. 프로세스 간의 공유할 자원이 없어서 Lock이나 Pipe 등은 사용하지 않고 기본 기능만 사용했습니다. 이번 포스트는 공부한 내용을 기록하는 차원에서 만들었습니다. 전역 인터프리터 락, 그리고 멀티 프로세싱 파이썬은 전역 인터프리터 락(Global Interpreter Lock, GIL) 특성 때문에, 쓰레드 단위에서는 진정한 병렬성을 구현하기 어렵습니다. GIL 환경에서는 하나의 쓰레드가 자원을 독점하고, 다수의 쓰레드는 순차적으로 처리됩니다... 2021. 7. 3.
반응형