도구 사용 도움말: Rational PurifyPlus 도구를 사용하여 런타임 성능 분석(Windows 및 UNIX)
이 도구 사용 도움말은 Rational PurifyPlus 도구를 사용하여 메모리 오류 및 누수로부터 자유로우며 효율적으로 메모리를 사용하고 최적의 성능을 제공하는 코드를 생성하는 방법을 설명합니다.
도구: Rational PurifyPlus
관계
관련 요소
기본 설명

이 도구 사용 도움말은 Microsoft Windows 시스템과 UNIX 시스템에서 사용할 경우에 적용 가능합니다.

PurifyPlus 도구로는 Rational Purify, Rational PureCoverage 및 Rational Quantify가 있습니다.

서적 아이콘 PurifyPlus 도구에 대해 자세히 학습하려면 PurifyPlus(Windows 버전 또는 UNIX 버전)용 Getting Started 매뉴얼을 읽으십시오.

도움말 서적 아이콘 PurifyPlus 도구 사용에 대한 단계별 정보는 도구의 온라인 도움말을 참조하십시오.

런타임 성능 분석 

런타임 성능 분석에는 다음이 포함됩니다.

  • 메모리 오류 및 누수 발견(Windows 및 UNIX의 C/C++ 프로그램).
    • Purify를 사용하여, 소스를 가지고 있지 않은 경우에도 사용자 고유 코드와 사용자 소프트웨어에서 사용하는 컴포넌트 둘 다에서 문제점을 정확하게 지적합니다.
    • PureCoverage를 사용하여 모든 코드가 적용되도록 합니다. (또한 Purify와 독립적으로 PureCoverage를 사용하여 C/C++, Java 및 .NET 관리 코드에 해당되는 적용 범위 데이터를 수집할 수 있습니다.)
  • 프로파일링 메모리 사용(Windows의 Java 및 .NET 관리 코드). Purify를 사용하여 메모리를 비효율적으로 사용 중인 위치를 표시합니다.
  • 프로파일링 성능(Windows 및 UNIX). Quantify를 사용하여 주요 성능 병목 현상을 제거할 수 있도록 프로그램이 대부분의 시간을 소비하는 위치를 표시합니다.

PurifyPlus 도구를 사용하여 런타임을 분석하면 최대 효율성 상태에서 실행되는 오류 없는 코드가 생성됩니다.

도구 단계

PurifyPlus 도구를 사용하여 런타임 분석을 수행하려면 다음을 수행하십시오.

1. Purify 환경에서 프로그램을 실행하여 오류, 누수 및 적용 범위 데이터 수집(Windows 및 UNIX의 C/C++ 프로그램) 

Purify는 사용자 고유 코드와 사용자 소프트웨어에서 사용하는 컴포넌트에서의 메모리 누수를 비롯하여 찾기 어려운 런타임 오류를 발견합니다. 배열 경계 오류, dangling 포인터를 통한 액세스, 초기화되지 않은 메모리 읽기, 메모리 할당 오류 및 메모리 누수와 같은 메모리 오류를 보고하여 손상을 입히기 전에 해결할 수 있도록 합니다. 시스템에 Rational PureCoverage가 있으면 테스트하고 테스트하지 않은 코드 부분도 볼 수 있습니다. 

우선 Purify 환경에서 프로그램을 실행하는 것부터 시작하십시오.

  • Windows 시스템:
    • Microsoft Visual Studio 6에서 작업 중일 경우, 먼저 Visual Studio 메뉴 항목 Purify > Purify 통합 보증을 선택하십시오. 시스템에 PureCoverage가 있는 경우에는 Purify > 적용 범위 데이터 수집도 선택하여 Purify가 코드 적용 범위를 모니터하도록 지시하십시오. 그런 다음 Visual Studio에서 일반적인 방식으로 프로그램을 실행하십시오.
    • Visual Studio와 통합되지 않은 독립형 프로그램으로 Purify를 사용 중인 경우에는 파일 > 실행을 선택하십시오. 프로그램 실행 대화 상자에서 오류, 누수 및 적용 범위 데이터 수집(또는 시스템에 PureCoverage가 없는 경우에는 오류 및 누수 데이터 수집)을 선택하고 프로그램을 실행하십시오.
  • UNIX 시스템에서 purify 단어를 추가하십시오. 컴파일/링크 행의 시작 부분에 이 단어를 놓으십시오. 시스템에 PureCoverage가 있으면 purecov도 추가하십시오. 예를 들어 다음과 같습니다.
    % purify purecov cc -g hello_world.c
    그런 다음 일반적인 방식으로 프로그램을 실행하십시오.
사용자가 프로그램 연습을 수행하는 대로 Purify는 Purify 표시기에 런타임 오류를 나열합니다. 프로그램을 종료하면 Purify는 메모리 누수를 보고합니다.

메시지 헤더를 스캔하여 심각한 오류를 식별하십시오. 메시지를 펼쳐서 오류를 생성한 코드를 비롯하여 자세한 진단 정보를 보십시오. 표시기에서, 오류가 발생한 행에서 편집기에 소스 코드를 열고 직접 정정하십시오.

오류를 정정하고 프로그램을 다시 빌드한 후에는 갱신된 프로그램을 다시 실행하고 새 결과를 이전 실행과 비교하여 정정사항을 확인하십시오. 프로그램이 명확하게 실행될 때까지 인스트루먼트 및 실행, 분석, 정정 주기를 반복하십시오.

프로그램 실행에 대한 적용 범위 데이터를 수집한 경우 확인하지 않은 코드 부분도 볼 수 있습니다. 어디에서 발생하든지 프로그램에서 모든 오류를 찾도록 런타임 분석 범위를 조정하려면 이 정보를 사용하십시오.

도움말 서적 아이콘 자세한 정보는 Purify 온라인 도움말 색인에서 다음 주제를 찾으십시오.

  • 프로그램 실행
  • Purify 메시지
  • 소스 코드
  • 적용 범위 데이터

2. Purify 환경에서 프로그램을 실행하여 비효율적인 메모리 사용 발견(Windows의 Java 및 .NET 관리 코드) 

Purify는 Java 및 .NET 관리 코드 메모리 문제점을 식별하는 데 도움이 됩니다. Purify를 사용하여 다음을 판별할 수 있습니다.

  • 프로그램이 사용 중인 메모리의 양
  • 특정의 조치 세트에 대해 프로그램이 이용하는 메모리의 양 
  • 프로그램에서 너무 많은 메모리를 이용하는 메소드 및 오브젝트 
  • 불필요한 오브젝트는 가비지 콜렉트되지 않을 수 있는 오브젝트 
  • 성능 개선을 위해 가비지 콜렉션을 강제 실행할 만한 위치
우선 Purify 환경에서 프로그램을 실행하는 것부터 시작하십시오.
  • Microsoft Visual Studio .NET, IBM WSWB 또는 IBM WSS AD에서 작업 중일 경우, 먼저 메뉴 항목 PurifyPlus > Purify > Purify 통합 보증을 선택하십시오. 그런 다음 일반적인 방식으로 프로그램을 실행하십시오.
  • Visual Studio .NET 또는 WSWB/WSS AD와 통합되지 않은 독립형 프로그램으로 Purify를 사용 중인 경우에는 Purify 사용자 인터페이스에서 파일 > 실행을 선택하십시오. 프로그램 실행 대화 상자에서 메모리 프로파일링 데이터 수집을 선택한 후 프로그램을 실행하십시오.
프로그램이 해당되는 초기화 프로시저를 완료한 후에는 Purify 스냅샷 명령을 사용하여 당시의 메모리 사용을 벤치마크하십시오. 스냅샷은 프로그램이 실행되는 대로 메모리를 사용하는 방법을 조사하기 위한 기초입니다.  

스냅샷을 가지고 있으면, 프로그램이 실행되는 대로 프로그램에 사용되는 메모리의 레코드를 캡처할 수 있습니다. 메모리 누수가 있는 것으로 의심이 가는 프로그램 부분을 실행하십시오. Purify는 현재 메모리 사용에서의 실시간 변동을 표시하는 메모리 할당 그래프를 표시합니다. 할당된 메모리에서 증가를 관찰할 때 다른 스냅샷을 사용하십시오.

두 개의 스냅샷을 비교하여 메모리 누수가 발생할 수 있는 메소드를 식별하십시오. 프로그램을 종료하고 두 개의 스냅샷을 비교(또는 "diff")하십시오. Purify는 첫 번째 및 두 번째 스냅샷에 소비한 시간 사이에, 프로그램 실행 중 할당된 가장 큰 메모리의 책임이 있는 메소드를 보여주는 호출 그래프를 표시합니다. 호출 그래프 내에서 특정 메소드에 초점을 맞추고 더 근접하게 조사할 수 있습니다.

메소드에 할당된 메모리의 양이 예기치 않게 클 경우, 소스 코드를 점검한 후 필요에 따라 수정하여 더 이상 필요하지 않을 경우 메모리를 해제하십시오.

메모리 문제점이 있는 것으로 표시되는 메소드를 식별하고 나면 오브젝트 레벨에서 메소드를 분석하십시오. 해제하고 가비지 콜렉트해야 하지만 이와 같이 하지 못한 오브젝트(아마도 다른 오브젝트가 이 오브젝트를 불필요하게 참조하고 있어서)를 찾으십시오.  

도움말 서적 아이콘 자세한 정보는 Purify 온라인 도움말 색인에서 다음 내용을 보십시오. 

  • 프로그램 실행
  • 실행 비교
  • 데이터 브라우저

3. Quantify 환경에서 프로그램을 실행하여 성능 병목 현상 찾기(Windows 및 UNIX)

Quantify는 사용자 코드에서 성능 병목 현상을 식별하여 제거할 수 있도록 프로그램 및 해당 컴포넌트에 대한 완전하고 정확하며 해석하기 쉬운 성능 데이터 세트를 제공합니다.

우선 Quantify 환경에서 프로그램을 실행하여 성능 데이터를 수집하는 것부터 시작하십시오.

  • Windows 시스템:
    • Microsoft Visual Studio 6에서 작업 중일 경우, 먼저 Visual Studio 메뉴 항목 Quantify > Quantify 통합 보증을 선택하십시오. 그런 다음 Visual Studio에서 일반적인 방식으로 프로그램을 실행하십시오.
    • Microsoft Visual Studio .NET, IBM WSWB 또는 IBM WSS AD에서 작업 중일 경우, 먼저 메뉴 항목 PurifyPlus > Quantify > Quantify 통합 보증을 선택하십시오. 그런 다음 일반적인 방식으로 프로그램을 실행하십시오.
    • Visual Studio 또는 WSWB/WSS AD와 통합되지 않은 독립형 프로그램으로 Quantify를 사용 중인 경우에는 Quantify 사용자 인터페이스에서 파일 > 실행을 선택하십시오.
  • UNIX 시스템에서 컴파일/링크 행의 시작 부분에 quantify 단어를 추가하십시오. 예를 들어 다음과 같습니다.
         % quantify cc -g hello_world.c
    
    그런 다음 일반적인 방식으로 프로그램을 실행하십시오.

사용자가 코드 연습을 수행하는 대로, Quantify는 프로그램 성능에 대한 데이터를 기록하고 해당 스레드 및 파이버의 활동을 표시합니다. 사용자가 프로그램을 종료할 때 Quantify는 사용자가 병목 현상을 찾아서 진단하는 데 사용할 수 있는 정확한 성능 프로파일을 갖게 됩니다.

Quantify 데이터 표시에는 다음이 포함됩니다.

  • 프로그램에 있는 함수의 호출 구조 및 성능을 그래픽으로 보여주는 호출 그래프 창
  • 성능 데이터와 함께 모든 함수를 나열하는 정렬 가능한 함수 목록 창
  • 특정 함수, 해당되는 호출자 및 해당되는 하위 요소에 관한 데이터를 표시하는 함수 세부사항 창
  • 소스 코드 사본에 대한 행별 성능 데이터를 표시하는 어노테이션이 있는 소스 창

수집되는 데이터를 사용하여 불필요한 계산 및 재계산, 성급한 계산 또는 과다하거나 비용이 많이 드는 라이브러리 호출과 같은 성능 병목 현상을 식별할 수 있습니다.

코드를 수정하여 병목 현상을 제거하거나 최소화한 후에는 Quantify 환경에서 갱신된 프로그램을 다시 실행하십시오. 그런 다음 성능 개선 및 회귀의 명백한 표시를 제공하는 "diff" 데이터 세트를 작성하여 이전 실행과 새 결과를 비교하십시오.

자세한 정보는 Quantify 온라인 도움말에서 다음 주제를 참조하십시오.

  • 프로그램 실행
  • 실행 비교
  • 호출 그래프 창
  • 어노테이션이 있는 소스 창