Pada eksperimen berikut ini, compiler yang saya pakai adalah MS Visual C++ 2008.
Tipikal program “Hello World” di C kira-kira adalah sebagai berikut (asumsikan nama file hello.c) :
#include <stdio.h> int main(){ printf("Hello World"); return 0; }
Compile :
cl hello.c
Jadilah suatu executable berukuran 48 KB. Kalau menurut anda 48 KB masih terlalu besar, anda bisa menghindari penggunaan C runtime, dan code diatas menjadi sebagai berikut :
#include <windows.h> void main(){ DWORD chars; HANDLE stdout = GetStdHandle(STD_OUTPUT_HANDLE); WriteConsoleA(stdout,"Hello World",11,&chars,0); ExitProcess(0); }
Compile :
cl /c hello.c link /nodefaultlib /entry:main hello.obj kernel32.lib
Hasilnya ? Executable berukuran 2.5 KB. Yay !! Kalau ditulis ulang dengan 100% assembly, kayanya bisa lebih compact lagi. He he entahlah gimana …
Pentingkah optimasi semacam ini ? Saya pikir tidak. Harddisk bergiga-giga sudah relatif murah.
Lebih baik mengoptimasi algoritma yang digunakan untuk meningkatkan efisiensi.
Tapi kalau anda membuat sesuatu, katakanlah virus atau demoscene, optimasi ukuran diatas memang diperlukan. Dan adakalanya membuat program sekecil-kecilnya adalah guilty pleasure di kalangan programmer.
Yah, mau diapain lagi ?