성능 조정 이해

데이터 소스

성능 데이터는 여러 소스에서 수집됩니다.

디버그 정보 및 변환 보고서를 사용 가능하게 하려면 필수 컴파일러 옵션으로 빌드의 해당 절을 참조하십시오.

시스템 스코어카드

빌드 또는 런타임 환경에 대한 단순한 변경이 실제로 애플리케이션 소스 코드를 변경하지 않고 애플리케이션 성능에 큰 영향을 줄 수 있습니다. 빌드 및 런타임 호스트는 하드웨어 레벨, OS 레벨, 컴파일러 버전 및 빌드 옵션을 포함하여 여러 기준에 기반하여 분석되고 "스코어"가 지정됩니다. 시스템 스코어카드 보고서가 생성되며, 여기에서는 더 나은 애플리케이션 성능을 위해 시스템 구성을 향상시키는 방법에 대한 권장사항을 제공합니다.

기본 성능 데이터 샘플링

실행 중인 애플리케이션에 대해 수집된 원시 성능 데이터는 샘플링에 기반한 하위 레벨 시스템 도구에서 나옵니다. 예를 들어 tprof는 계속해서 프로세서의 명령어 포인터 상태에 대한 샘플을 기록합니다. 여기에는 현재 실행 중인 명령어의 메모리 주소가 포함됩니다. 성능 실행을 완료한 후 컴파일러 디버그 정보를 사용하여 기록된 주소를 다시 해당 소스 코드 라인에 맵핑합니다. 샘플링 속도는 구성 가능하지만 보통 10초마다 한 번입니다. 각 샘플은 이라고 합니다.

샘플링 기반 성능 데이터 콜렉션에는 결점이 있습니다. 프로파일링한 애플리케이션 외에도 대상 시스템에서 실행 중인 여러 프로세스가 있을 수 있습니다. 일반적으로 많은 틱이 프로세스 완료에 기여합니다. 이러한 이유로 비교적 "사용량이 적은" 시스템에서 실행하는 것이 좋습니다. 이상적인 상황은 성능 테스트 전용 시스템을 보유하는 것입니다.

프로파일링되는 애플리케이션에 대응하는 틱은 핫스팟 브라우저의 "내 애플리케이션" 노드 아래 나타납니다. 다른 모든 틱은 "기타 프로세스" 노드에 지정됩니다. 많은 틱이 다른 프로세스에 기여한 경우, 가능한 경우 후속 성능 실행 중에 시스템 로드 감소를 고려하십시오.

데이터는 샘플링을 기반으로 하므로 샘플 수를 늘리면 수집되는 데이터의 통계 연관성이 늘어납니다. 프로파일링하는 애플리케이션은 30초 이상 실행하는 것이 좋으며, 더 오래 실행할 수록 좋습니다. 이는 스크립트를 사용하여 루프에서 애플리케이션을 실행하거나 연장된 기간 동안 애플리케이션을 실행하게 하는 입력 세트를 선택하여 수행할 수 있습니다.

기본적으로 틱은 표시되지 않습니다. 대신 핫 수준은 전체 시스템 또는 애플리케이션과 같이 범위에 상대적인 백분율로 표시됩니다. 틱 표시를 사용하려면 먼저 기본 메뉴의 > 환경 설정에서 환경 설정 대화 상자를 여십시오. 그런 다음, 성능 조정 > 모양 아래 환경 설정 페이지로 이동하십시오. 타이밍 데이터 아래 백분율 및 틱 모두 표시를 선택하십시오.

호출 스택 샘플링

호출 스택 샘플링 데이터는 하위 레벨 시스템 도구에서 수집됩니다. 이 데이터는 AIX의 경우 procstack, Linux의 경우 OProfile에서 파생됩니다.

약 1초마다 애플리케이션 호출 스택이 샘플링되며 모든 애플리케이션의 현재 실행 중인 함수가 기록됩니다. 성능 실행을 완료한 후 이 정보는 호출 브라우저를 사용하여 분석할 수 있습니다.

컴파일러 변환 보고서

XLC 컴파일러에는 컴파일 중에 수행된 최적화를 설명하는 XML 보고서 파일을 생성하는 기능이 있습니다. 이 보고서는 필수는 아니지만, 생성된 경우 분석 시 더 많은 정보를 사용할 수 있습니다. 이러한 보고서에서 가장 흥미로운 점은, 컴파일 중에 인라인되는 함수 호출의 위치입니다.


피드백