Winter Season

Optimizing C and C++ code for Embedded System !! Episode 4 (Thai Language)

Written by :  Ataya P
Date :
2 August 2010
Language : Thai
  
    ช่วงนี้พยายามจะลดขนาดของไบนารี่ลงเพราะMPUที่ใช้งานมีพื้นที่เฟรชเมมโมรี่ค่อยข้าง จะจำกัด ดูลองดูหลายๆอย่างแล้วก็สรุปได้ดังนี้ครับ(ถ้ามีวิธีไดเอ็ทง่ายๆแบบ นี้ก็คงดีนะครับ :)

/*
 * main.c
 *
 *  Created on: Aug 2, 2010
 *      Author: Ataya P
 */
#include<stdio.h>

void A(){
    fprintf(stderr,"\n This is A \n");
}

int main(){
    A();
    return 0;
}

   โค้ดตัวอย่างสร้างด้วยEclipseแล้วคอมไฟล์、ลิงค์แบบทั่วๆไปก็จะได้ขนาดไฟล์ไบ นารี่ที่ 23156 byte (Ubuntu Linux)



1.เอาข้อมูลดีบักออก
  เมื่อเอาไบนารี่ไปรันบนระบบจริงคงไม่จำเป็นต้องเอาข้อมูลสำหรับดีบักไปด้วยกระมัง ดังนั้นออฟชัน -g3 ที่ใช้ในตอนคอมไฟล์ก็เอาออกเลยครับ

Debug Level = None

   ลองเครียร์โปรเจ็คแล้วสร้างไบนารี่ใหม่ โอ้ จอร์ด ขนาดของไบนารี่ก็จะลดลงเหลือ 7192 byte(ลดลง 23156 - 7192= 15964 byte)


2.ใช้Strip ทำการตัด Symbol ออกจากไบนารี่ไฟล์
  ใช้คอมมานด์ข้างล่างทำการตัด Symbol ออกจากไปนารี่ไฟล์
   $ strip -s binaryfile
  คราวนี้ขนาดของไบนารี่ไฟล์ก็จะลดลงเหลือ 5496 byte (ลดลง 7192-5496= 1696 byte)

  สำหรับทิปในการลดขนาดไบนารี่ไฟล์ยังมีต่ออีกนะครับ ไว้เจอกันคราวหน้าครับผม (^3^) /


Share this page :

Custom Search