"XC8 컴파일러를 이용하여 C 코드를 컴파일하면 출력 파일의 크기가 얼마나 달라질까?"


이러한 호기심이 생겨 아래의 코드로 각각의 컴파일 옵션에 따라 코드를 컴파일해 보았습니다. 그리고 출력 파일의 크기를 각각 비교해 보았습니다.


pic16_optimizationText.X.zip



사용한 코드는 아래와 같으며 처음 C 코드를 배울 때 사용해 보았던 구구단 코드를 사용했습니다.


 /* TODO <INSERT USER APPLICATION CODE HERE> */

        for(i=2;i<=9;i++){

            for(j=2;j<=9;j++){

                LATA = i*j;

            }

        }



출력된 Hex 파일을 이용하여 Flash 사이즈를 확인해 보겠습니다.


  • XC8 컴파일러 버전: v1.45

최적화레벨 

 Free mode

Standard mode 

Professional mode 

 Flash 사용량

 80 bytes

 69 bytes

 50 bytes

 코드비율

 100%

86.25% 

65.5% 



  • Free mode

Memory Summary:

    Program space        used    50h (    80) of  2000h words   (  1.0%)

    Data space           used     Ah (    10) of   3F0h bytes   (  1.0%)

    EEPROM space         used     0h (     0) of   100h bytes   (  0.0%)

    Data stack space     used     0h (     0) of   3F0h bytes   (  0.0%)

    Configuration bits   used     0h (     0) of     4h words   (  0.0%)

    ID Location space    used     0h (     0) of     4h bytes   (  0.0%) 


  • Standard mode

Memory Summary:

    Program space        used    45h (    69) of  2000h words   (  0.8%)

    Data space           used     Ah (    10) of   3F0h bytes   (  1.0%)

    EEPROM space         used     0h (     0) of   100h bytes   (  0.0%)

    Data stack space     used     0h (     0) of   3F0h bytes   (  0.0%)

    Configuration bits   used     0h (     0) of     4h words   (  0.0%)

    ID Location space    used     0h (     0) of     4h bytes   (  0.0%)


  • Professional mode

Memory Summary:

    Program space        used    32h (    50) of  2000h words   (  0.6%)

    Data space           used     7h (     7) of   3F0h bytes   (  0.7%)

    EEPROM space         used     0h (     0) of   100h bytes   (  0.0%)

    Data stack space     used     0h (     0) of   3F0h bytes   (  0.0%)

    Configuration bits   used     0h (     0) of     4h words   (  0.0%)

    ID Location space    used     0h (     0) of     4h bytes   (  0.0%)



코드의 사이즈 감소가 Free mode를 100%를 기준으로 했을 때, Standard mode는 86.25% Professional mode는 65.5% 수준까지 줄어드는 것을 확인할 수 있었습니다. 코드 크기가 줄어들면 같은 동작에 대해 실행을 더 빨리할 수 있고 Flash 공간도 절약할 수 있습니다. 


 Free 모드로도 무료로 사용할 수 있어 좋지만, 유료 버전인 Professional 버전을 사보는 것도 좋아 보입니다. 처음 설치 시 60일간은 무료로 사용할 수 있다고 하네요..



Posted by KennyShin
,