이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
코드 프로파일 분석기
설명
코드 프로파일 분석기 앱을 사용하여, 생성된 코드의 SIL(Software-in-the-Loop) 또는 PIL(Processor-in-the-Loop) 실행을 통해 생성된 실행 시간 및 스택 사용 프로파일을 분석하십시오:
태스크 및 함수의 실행 시간을 확인하고, 특정 시뮬레이션 시점의 함수 호출 스택을 시각화하며, 서로 다른 실행 결과의 실행 시간을 비교할 수 있습니다.
태스크 및 함수의 스택 사용량을 확인하고, 서로 다른 실행 결과의 값을 비교합니다.
Embedded Coder®를 사용하고 있다면 다음과 같은 방법도 있습니다:
XCP 기반 외부 모드 시뮬레이션에서 생성된 실행 시간 프로파일을 분석합니다.
모델 계층 구조에 대한 코드 프로파일링을 구성합니다.
생성된 코드에서 성능 병목 현상을 파악하고 분석합니다. 이 워크플로는
coder.profile.test.runTests함수를 사용합니다.생성된 코드에서 임계 경로를 파악하고 분석하십시오. 이 워크플로는
coder.profile.test.analyzePath함수를 사용합니다.
코드 프로파일 분석기 앱 열기
Simulink® 모델에서 코드 생성을 수행하는 경우, SIL/PIL 탭을 클릭하십시오. 결과 갤러리에서 실행 프로파일링 결과 또는 스택 프로파일링 결과 아래에 있는 코드 프로파일 분석기 버튼을 클릭합니다.
MATLAB® 코드에서 코드 생성을 수행하는 경우, 명령 창에서 SIL/PIL 실행을 종료하십시오. 코드 생성기는 실행 또는 스택 프로파일링 리포트로 연결되는 링크가 포함된 메시지를 명령 창에 표시합니다. 그 링크를 클릭하십시오.
또는 Simulink 및 MATLAB 워크플로 모두에서, SIL/PIL 실행이 종료된 후 명령 창에서 coder.profile.show 또는 coder.profile.show(를 입력하여 코드 프로파일 분석기를 여십시오. profileVariable)
Simulink 워크플로에서 은 작업 공간 변수(profileVariableCodeExecutionProfileVariable) 또는 스택 작업 공간 변수(CodeStackProfileVariable) 파라미터를 통해 지정하는 작업 공간 변수(coder.profile.ExecutionTime 또는 coder.profile.ExecutionStack 객체)입니다.
MATLAB 워크플로의 경우, getCoderExecutionProfile 또는 getCoderStackProfile 함수를 사용하여 을 얻으십시오.profileVariable
앱이 이미 열려 있으면, 일반 탭을 사용하여 실행 시간 또는 스택 사용량 측정값이 포함된 작업 공간 변수를 선택함으로써 개별 시뮬레이션 결과를 가져올 수 있습니다.
일반 탭을 사용하여 여러 시뮬레이션의 집계 결과를 가져올 수는 없습니다. 대신, coder.profile.show( 명령을 사용하십시오. 여기서 profileAggregate)profileAggregate는 coder.profile.ExecutionTimeSet 또는 coder.profile.ExecutionStackSet 객체입니다.
코드 프로파일 분석기 워크플로
가져오는 시뮬레이션 결과의 유형에 따라 앱에 표시되는 탭과 수행할 수 있는 워크플로가 결정됩니다.
coder.profile.ExecutionTime 객체를 사용하여 결과를 가져올 때, 시간 프로파일링 탭에는 이 테이블에 설명된 대로 탭이 표시됩니다.
| 탭 | 목적 |
|---|---|
| 태스크 실행 | 태스크의 실행 시간 메트릭을 표시합니다. 각 태스크에 대해 실행 시간(즉, 최소, 평균, 최대 실행 시간)과 이에 상응하는 CPU 사용률을 확인하면, 해당 태스크들이 실행 시간상의 문제 없이 타깃 하드웨어에서 전반적으로 실행될 수 있는지 판단할 수 있습니다. View and Compare Code Execution Times 항목을 참조하십시오. |
| 함수 실행 | 생성된 코드 함수의 실행 시간 메트릭을 표시하여 핫스팟을 파악하고, 재작업이 필요한 함수를 확인합니다. View and Compare Code Execution Times 항목을 참조하십시오. |
| 함수 호출 스택 | 특정 시뮬레이션 시점에서 함수 호출 스택을 표시합니다. 특정 태스크가 예상보다 오래 걸리고 있음을 확인한 경우, 각 실행 인스턴스에 대해 해당 태스크의 함수 호출 단계를 표시할 수 있습니다. 이 기능은 성능 병목 지점을 파악하는 데 도움이 됩니다. View and Compare Code Execution Times 항목을 참조하십시오. |
| 비교 | 두 시뮬레이션의 실행 시간 메트릭을 비교하여 성능 저하를 파악합니다. View and Compare Code Execution Times 항목을 참조하십시오. |
| 태스크 검증 | CPU 타당성 분석을 수행하여, 주어진 태스크 집합이 실행 시간상의 문제 없이 실행될 수 있는지 공식적으로 확인합니다. 태스크-CPU 매핑이 미치는 영향을 분석하십시오. Validate Task-to-CPU Mapping 항목을 참조하십시오. |
| CPU 사용률 | 각 태스크에 대해 사용 가능한 CPU별 실행 시간을 표시하십시오. 이 기능은 시스템에서 태스크가 어떻게 할당되는지 보여 주며, 부하 분산을 개선하는 데 도움이 될 수 있습니다. 다음 조건이 모두 충족될 때만 이용 가능합니다:
Validate Task-to-CPU Mapping 항목을 참조하십시오. |
coder.profile.ExecutionTimeSet 객체를 사용하여 결과를 가져올 때, 시간 프로파일링 탭에는 이 테이블에 설명된 대로 탭이 표시됩니다.
| 탭 | 목적 |
|---|---|
| 누적 결과 | 서로 다른 테스트의 태스크 실행 메트릭을 표시합니다. 일련의 테스트 케이스를 실행하면, 각 태스크에 대해 가장 긴 실행 시간과 평균 실행 시간을 파악할 수 있습니다. 그러면 가장 많은 부하를 유발하는 테스트 케이스를 파악할 수 있습니다. |
| 화염 그래프 | 가장 오래 실행된 태스크에 대한 화염 그래프를 표시합니다. 이 뷰를 통해 태스크 실행 인스턴스 중에 어떤 일이 발생하는지 파악할 수 있으며, 이를 통해 성능 병목 지점을 식별할 수 있습니다. |
| 비교 | 두 시뮬레이션의 실행 시간 메트릭을 비교하여 성능 저하를 파악합니다. |
| 태스크 검증 | CPU 타당성 분석을 수행하여, 주어진 태스크 집합이 실행 시간상의 문제 없이 실행될 수 있는지 공식적으로 확인합니다. 태스크-CPU 매핑이 미치는 영향을 분석하십시오. Validate Task-to-CPU Mapping 항목을 참조하십시오. |
coder.profile.ExecutionStack 객체를 사용하여 결과를 가져올 때, 메모리 프로파일링 탭에는 이 테이블에 설명된 대로 탭이 표시됩니다.
| 탭 | 목적 |
|---|---|
| 스택 메모리 | 태스크 및 함수의 스택 사용량 메트릭을 표시합니다. 각 태스크에 대해 스택 메모리 사용량의 최솟값, 평균값, 최댓값에 대한 요약 정보를 확인합니다. 태스크 내에서 실행된 각 함수에 필요한 메모리 용량을 확인합니다. View and Compare Stack Usage Metrics 항목을 참조하십시오. |
| 함수 호출 스택 | 특정 시뮬레이션 시점에서 함수 호출 스택을 표시합니다. 특정 태스크의 메모리 할당량이 예상보다 많다고 판단되면, 해당 태스크의 각 실행 인스턴스에 대한 함수 호출 스택을 표시할 수 있습니다. 이 기능은 성능 병목 지점을 파악하는 데 도움이 됩니다. View and Compare Stack Usage Metrics 항목을 참조하십시오. |
| 비교 | 두 시뮬레이션의 스택 메트릭을 비교하여 성능 저하를 파악합니다. View and Compare Stack Usage Metrics 항목을 참조하십시오. |
coder.profile.ExecutionStackSet 객체를 사용하여 결과를 가져올 때, 메모리 프로파일링 탭에는 이 테이블에 설명된 대로 탭이 표시됩니다.
| 탭 | 목적 |
|---|---|
| 누적 결과 | 서로 다른 테스트의 태스크 스택 메트릭을 표시합니다. 일련의 테스트 케이스를 실행하면, 각 태스크에 대해 스택 사용량의 최댓값을 파악할 수 있습니다. 그러면 가장 많은 부하를 유발하는 테스트 케이스를 파악할 수 있습니다. |
| 비교 | 두 시뮬레이션의 스택 메트릭을 비교하여 성능 저하를 파악합니다. |
모델이 성능 모니터링 단위(PMU) 메트릭을 생성하도록 구성된 경우, 결과를 가져올 때 코드 프로파일링 탭에는 이 테이블에 설명된 대로 탭들이 표시됩니다.
| 탭 | 목적 |
|---|---|
| 함수 실행 | 생성된 코드 함수의 PMU 메트릭을 표시하여 핫스팟을 파악하고 재작업이 필요한 함수를 확인합니다. Generate Profiles Using PMU Metrics 항목을 참조하십시오. |
| 비교 | 두 시뮬레이션의 PMU 메트릭을 비교하여 성능 저하를 파악합니다. Generate Profiles Using PMU Metrics 항목을 참조하십시오. |
데이터를 가져오든 가져오지 않든, 코드 프로파일 분석기 앱을 사용하여 모델 계층 구조에서 코드 프로파일링을 구성할 수도 있습니다. Configure Execution-Time Profiling in Model Hierarchy Using Code Profile Analyzer 및 Configure Stack Usage Profiling in Model Hierarchy Using Code Profile Analyzer 항목을 확인하십시오.
예제
관련 예제
버전 내역
R2023a에 개발됨
