HOWTO · C++
C++ 프로파일링 도구
이 튜토리얼은 C++에 가장 적합한 프로파일러 중 일부를 보여줍니다.
이 페이지의 내용
이 튜토리얼은 C++에 가장 적합한 프로파일러 중 일부를 보여줍니다.
C++ 프로파일링 도구
프로파일링을 통해 프로그램이 어느 부분에서 시간을 보내고 있는지 알 수 있습니다. 다음과 같은 단계별 프로세스입니다.
- 먼저 프로그램을 컴파일하고 프로파일링과 연결합니다.
- 그런 다음 프로그램을 실행하여 데이터 파일을 생성합니다.
- 그런 다음 프로파일링 도구를 실행하여 프로파일 데이터를 분석합니다.
C++에 사용할 수 있는 많은 프로파일링 도구가 있습니다. 이 튜토리얼은 C++을 위한 최고의 프로파일링 도구 중 일부를 보여줍니다.
GNU 프로파일러
GNU 프로파일러는 C++ 프로파일링을 위한 유비쿼터스 무료 소프트웨어입니다. IDE의 도움으로 GUI에서 결과를 생성할 수 있는 gprof로 축약됩니다.
gprof에도 동일한 세 단계가 있습니다.
- 프로파일링으로 프로그램을 컴파일하고 연결합니다.
- 프로그램을 실행합니다.
gprof를 실행하여 프로필 데이터를 분석합니다.
gprof에는 다음 옵션을 포함하는 명령 요약이 있습니다.
- 출력 옵션
- 분석 옵션
- 기타 옵션
- 더 이상 사용되지 않는 옵션
- 심스펙
gprof는 Windows, macOS 및 Linux 기반 C++ 시스템에서 지원됩니다.
여기서 gprof는 플랫 프로파일, 호출 그래프 및 gprof를 C++용 최고의 프로파일링 도구 중 하나로 만드는 라인별 프로파일링을 포함하여 출력을 해석하는 다양한 방법을 제공하지만 몇 가지 기능이 있습니다. 때때로 출력의 부정확성을 포함하고 때로는 Unix와 호환되지 않는 back draws. 전체 문서를 보려면 이 링크를 방문하십시오.
인텔 VTune 프로파일러
인텔 VTune 프로파일러는 다양한 언어를 위한 무료 프로파일 도구이기도 합니다. 언어에는 C, C++, C#, Python, OpenCL™ 코드, Fortran, GoLang, Java, Assembly, .Net 등이 포함됩니다.
인텔 Vtune 프로파일러는 시스템 및 응용 프로그램 성능을 최적화하는 데 사용됩니다. 또한 스토리지, IoT, 클라우드, 미디어 등의 시스템 구성을 최적화합니다.
이 도구의 다른 주요 기능은 다음과 같습니다.
- 시스템 및 애플리케이션의 성능을 최적화하고 열 및 전력 관련 스로틀링을 방지합니다.
- 인텔 Vtune 프로파일러는 확장된 기간 동안 대략적인 형태로 시스템 데이터를 가져올 수 있습니다. 또한 소스 코드에 매핑된 자세한 결과를 얻을 수 있습니다.
- 인텔 Vtune 프로파일러는 가속 위치를 포함하여 응용 프로그램의 성능을 조정할 수 있습니다.
인텔 Vtune 프로파일러는 Windows, macOS 및 Linux 기반 C++ 시스템에서 지원됩니다.
인텔 VTune 프로파일러는 이 링크에서 다운로드할 수 있습니다.
Google Perftools
perftools는 코드 계측이 필요하지 않은 C++에 사용할 수 있는 Google의 프로파일러입니다. gperftools는 다중 스레드 고성능 malloc() 구현 모음입니다.
이 도구는 힙 및 CPU 프로파일러를 포함하여 BSD 라이선스에 따라 배포됩니다. 이 도구는 모든 UNIX 기반 시스템에서 사용할 수 있습니다.
이 도구의 주요 기능은 다음과 같습니다.
- 매우 멋진 그래픽 출력이 있습니다.
- 메모리 프로파일링, 누수 검사 및 CPU 프로파일링을 수행할 수 있습니다.
- 가장 빠른 프로파일링 도구 중 하나로 간주됩니다.
- 코드 계측이 필요하지 않습니다.
이 도구는 빠르지만 다른 도구는 더 세분화되어 있습니다. 이 도구는 Unix 기반 시스템에서만 지원됩니다. perftools는 이 링크에서 다운로드할 수 있습니다.
발그라인드
Valgrind는 C++에 사용할 수 있는 프로파일링 도구인 Cachegrind 및 Callgrind를 포함하는 도구 모음입니다. callgrind는 cachegrind의 확장입니다.
cachegrind는 캐시 프로파일링에 사용됩니다. 이 도구는 CPU 캐시에서 시뮬레이션을 수행하여 코드에서 캐시 누락을 정확하게 찾아냅니다.
cachegrind는 코드의 각 라인에 대해 실행된 메모리 참조, 캐시 미스 및 명령의 수를 식별할 수 있습니다. 여기서 이러한 작업은 기능별, 모듈별 및 전체 프로그램 요약으로 수행됩니다. cachegrind는 모든 언어와 함께 사용할 수 있지만 프로그램 실행 속도가 느려집니다.
위에서 언급했듯이 callgrind는 cachegrind의 확장입니다. 콜 그래프를 포함한 추가 기능이 있는 cachegrind와 유사하게 작동할 수 있습니다.
callgrind는 callgrind에 의해 수집된 데이터의 더 나은 개요를 제공할 수 있는 KCacheGrind라는 시각화에서 cachegrind와 함께 포함되었습니다. 이 도구는 cachegrind 도구를 시각화하는 데에도 사용할 수 있습니다.
Valgrind는 macOS, Linux 및 WSL 시스템에서 지원됩니다. Valgrind는 여기에서 다운로드할 수 있습니다.
TAU 성능 시스템
TAU 성능 시스템은 C, C++, Fortran, Java, Python 및 UPC로 작성된 프로그램의 성능 분석을 위한 휴대용 추적 툴킷 및 프로파일링 도구입니다.
Tunning Analysis and Utilities로 약칭되는 TAU는 함수, 기본 블록, 명령문, 메서드 및 이벤트 기반 샘플링의 계측을 사용하여 성능 정보를 수집하는 데 사용됩니다.
다음은 TAU의 몇 가지 주요 기능입니다.
- TAU는 C++의 모든 기능을 지원합니다.
- TAU는 계측을 구성하고 제어하는 데 도움이 되는 프로파일링 그룹 선택을 제공합니다.
- TAU는 성능 분석 결과의 그래픽 결과에 사용할 수 있는 프로필 시각화 도구
paraprof를 제공합니다. - TAU를 사용하면 성능 점수를 빠르게 확인할 수 있습니다.
- TAU는 또한
vampir,paravar또는Jumpshot시각화 도구와 같은 도구를 사용하여 추가로 표시할 수 있는 이벤트 추적을 생성할 수 있습니다.
TAU 성능 시스템은 이 링크에서 다운로드할 수 있습니다.
AMD 마이크로프로프
AMD는 Windows, Linux 및 FreeBSD 플랫폼의 x86 애플리케이션을 분석하는 데 사용할 수 있는 프로파일링 소프트웨어 μProf를 제공합니다. 이 도구는 개발자가 애플리케이션 성능의 한계를 이해하는 데 도움이 되며 성능을 개선하는 데 사용할 수 있습니다.
AMD μProf는 다음과 같은 주요 기능을 제공합니다.
- 애플리케이션의 성능 병목 현상을 식별하는 데 사용되는 성능 분석을 제공합니다.
- 또한 시스템 분석 및 모니터링 시스템 성능 메트릭을 제공합니다.
- 또한 시스템의 열 및 전력 특성을 모니터링할 수 있는 전력 프로파일링을 제공합니다.
- 또한 호스트 Windows 시스템에서 원격 Linux 시스템에 연결하여 원격 시스템에서 데이터 수집을 트리거한 다음 GUI에 보고하는 데 사용할 수 있는 원격 프로파일링을 제공합니다.
- 또한 애플리케이션 창의 에너지 핫스팟을 식별하는 데 사용할 수 있는 에너지 분석을 제공합니다.
AMD μProf는 Linux 및 Windows에서 지원됩니다. AMD μProf에 대한 자세한 정보 및 다운로드를 보려면 이 링크로 이동하십시오.
우리는 C++을 위한 최고의 프로파일링 도구 중 일부를 설명했습니다. 이러한 도구는 C++ 프로파일링을 위해 제공되는 도구일 뿐만 아니라; 다른 기능을 가진 다른 도구도 있습니다. 목록은 다음과 같습니다.