Loading AI tools
위키백과, 무료 백과사전
프로파일링(profiling, 프로그램 프로파일링/소프트웨어 프로파일링) 또는 성능 분석은 프로그램의 시간 복잡도 및 공간(메모리), 특정 명령어 이용, 함수 호출의 주기와 빈도 등을 측정하는 동적 프로그램 분석의 한 형태이다. 프로파일링 정보는 대개가 프로그램 최적화를 보조하기 위해 사용된다. 프로파일링은 프로파일러(profiler)라는 도구를 사용하여 프로그램 소스 코드나 이진 실행 파일을 계측 분석함으로써 수행한다.
프로파일러는 다양한 기술을 이용하여 데이터를 수집하는데, 여기에는 하드웨어 인터럽트, 코드 계측, 명령어 집합 시뮬레이션, 운영 체제 후킹, 성능 카운터를 포함한다.
프로파일러의 출력물은 다음과 같다:
성능 분석 도구는 1970년대 초 IBM/360, IBM/370에 존재했고, 일반적으로 실행 코드의 핫 스팟을 감지하기 위해 프로그램 상태 규정어(PSW)를 기록한 타이머 인터럽트에 기반을 두었다. 이는 초기 표집의 한 예이다. 1974년 초 명령어 집합 시뮬레이터는 완전한 추적 및 기타 성능 감시 기능을 허용했다.
유닉스의 프로파일러 구동 프로그램 분석은 적어도 1979년으로 거슬러 올라가는데, 이 때 유닉스 시스템에는 개별 함수뿐 아니라 얼마나 많은 프로그램 실행 시간이 사용되었는지를 나열하는 기본 도구 "prof"를 포함했다. 1982년에 gprof은 이 개념을 완전한 호출 그래프 분석으로 확장하였다.[1]
1994년에 디지털 이큅먼트 코퍼레이션(DEC)의 아미타브 스리바스타바(Amitabh Srivastava)와 앨런 유스터스는 ATOM에 대해 기술한 백서를 출판했다.[2] ATOM은 프로그램을 자신만의 프로파일러로 변환하기 위한 플랫폼이다. 즉, 컴파일 타임에서 코드를 분석 대상의 프로그램에 삽입하는 것이다. 삽입된 코드는 분석 데이터를 출력한다. 스스로 분석하여 프로그램을 수정하는 이 기술을 계측(instrumentation)이라 부른다.
2004년 grpof와 ATOM의 백서가 현 시대의 가장 영향력 있는 PLDI 백서의 50가지 목록에 등장하였다.[3]
이 문단은 비어 있습니다. 내용을 추가해 주세요. |
이 문단은 비어 있습니다. 내용을 추가해 주세요. |
이 문단은 비어 있습니다. 내용을 추가해 주세요. |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.