벤치마킹 도움

IAR Embedded Workbench는 업계에서 가장 효율적인 코드를 생성합니다. 사용 가능한 많은 설정을 사용하면 도구를 조정하여 프로그램의 성능을 극대화할 수 있습니다.

benchmarking_hints_top.png

크기냐 속도냐

최적화 수준 및 유형은 전체 프로그램과 개별 파일에 대해 지정할 수 있습니다. 소스 코드에서 #pragma optimize 지시어를 사용하면 개별 기능에 대해서도 이를 수행할 수 있습니다.

최적화의 목적은 코드 크기를 줄이고 실행 속도를 향상시키는 것입니다. 이 두 목표 중 하나만 충족할 수 있으면 컴파일러는 사용자가 지정한 설정에 따라 우선 순위를 지정합니다.

다양한 변환의 효과를 탐색하면 더 나은 결과를 얻을 수 있습니다. 예를 들어, 인라인 함수가 속도 최적화에 더 집중되어 있기에, 프로그램을 크기 설정보단 속도 설정을 더 작게 만듭니다.

2.png

작은 메모리 모델 선택

타겟에 사용 가능한 최소 메모리 모델을 선택합니다.

이익:

  • 더 작은 주소
  • 더 작은 지시어
  • 더 적은 포인터
  • 더욱 효과적
  • 더 적은 코드

런타임 환경 조정

기본적으로 런타임 라이브러리는 가장 큰 크기 최적화 수준에서 컴파일됩니다. 속도를 최적화하는 경우에는 다시 빌드해야 합니다.

라이브러리 구성을 선택하여 로케일, 파일 디스크립터 및 멀티바이트와 같은 특정 표준 라이브러리 기능에 필요한 지원 수준을 선택합니다.

필요에 따라 scanf 입력 및 출력 포맷터의 라이브러리 옵션을 선택합니다. 가장 작은 포맷터는 기본적으로 선택되지 않습니다.

3.png

4.png

올바른 데이터 유형을 사용

데이터 유형은 코드 크기/속도에 큰 영향을 미칩니다.

  • 애플리케이션에 가장 적합한 데이터 크기를 선택하십시오.
  • 가능한 경우 unsigned char 를 사용합니다. 산술 대신 비트 연산을 수행할 수 있습니다.

5.png

대상별 옵션을 선택

성능을 향상시키는 타겟별 옵션을 확인합니다.

  • 효율적인 주소 지정 모드 - 효율적인 메모리 액세스
  • 상수/변수에 대한 레지스터 잠금 – 메모리보다 레지스터 작업에 더 효율적인 코드
  • 함수 항목을 균등하게 정렬 - 정렬된 명령에도 속도가 붙습니다.
  • 바이트 정렬 개체 – 스토리지에 필요한 메모리는 적지만 코드가 클 수 있습니다.

관련 벤치마크 코드를 사용

  • 임베디드 시스템 벤치마크는 임베디드 프로그램의 특성을 다루어야 합니다.
  • 실제 애플리케이션은 대개 벤치마크에 유용하지만 코드가 실행될 수 있는지 확인하십시오. 링크는 참조되지 않는 코드와 변수를 제거하지만 모든 링크에 이 기능이 있는 것은 아닙니다.
  • 테스트 코드가 테스트 하니스(테스트 지원 기능)의 영향을 받지 않는지 확인하십시오. 이 예는 실제로 printf()를 벤치마킹하는 것입니다.

6.png

  • 링크된 코드를비교하십시오. 한 컴파일러는 다른 컴파일러가 라이브러리를 호출하는 인라인 코드를 생성할 수 있습니다.
  • 벤치마킹에 사용하는 프로그램을 파악하십시오!

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.