Iklan

Minggu, 01 Januari 2012

Teknik Optimasi

Teknik Optimasi ada tiga(3) yaitu
1. Dependensi Optimasi.
2. Optimasi Lokal.
3. Optimasi Global.
Berikut penjelasannya
1. Dependensi optimasi bertujuan untuk menghasilkan kode program yang berukuran lebih kecil dan lebih cepat.
2. Optimasi lokal adalah optimasi yang dilakukan hanya pada bagian blok tertentu dari source code.di dalam optimasi lokal terdapat lima(5) cara pengomptimasiannya.
a. Folding yaitu mengganti konstanta atau ekspresi yang bisa dievaluasi pada saat compile time dengan nilai komputasinya. misalnya : A = 5+4+B bisa di ganti dengan A=9+B karena 9 dapat menggantikan ekspresi 5+4.
b. Redundant-Subexpression Elimination : hasilnya digunakan lagi dari pada dilakukan komputasi ulang, contohnya
A=B+C
X=Y+B+C
dapat diganti dengan 
A=B+C
X=Y+A (karena isi dari A sudah bisa mengganti B+C)

 
c. Loop Unrolling : mengganti suatu loop dengan menulis statement yang ada di dalam loop ditulis beberapa kali, contoh:
For i=1 to 2 do
A[i]=0;
dapat diganti dengan
A[1]=0;
A[2]=0;
d. Frequency Reduction : pemindahan statement ke tempat yang lebih jarang dieksekusi. contoh
for i=1 to 10 do
begin
X=5
A=A+1
end
karena X itu diisi dengan nilai yang tetap yaitu 5 maka bisa dipindahkan menjadi
x=5
for i=1 to 10 do
begin
A=A+1
end
e.Strength Reduction : penggantian suatu operasi dengan operasi lain yang lebih cepat dieksekusi, contoh
A=A+1
dapat diganti dengan 
INC(A)
3. Optimasi Global : dilakukan dengan suatu graph terarah yang menunjukan jalur yang mungkin selama eksekusi program
ada 2 kegunaan optimasi global yaitu bagi programer dan juga bagi copiler itu sendiri
- bagi programer
a. Unreachable/dead code : kode yang tidak pernah dieksekusi contoh
x=5
if x=0 then
A=A+1
intruksi A=A+1 tidak pernah dikerjakan karena kondisi x tidak pernah menjadi 0
b. Unused parameter : parameter yang tidak pernah digunakan dalam procedure. contoh
procedure penjumlahan (a,b,c :integer)
var x:integer;
begin
x=a+b;
end;
parameter c tidak pernah dugunakan sehingga tidak perlu diikut sertakan pada procedure
c. Unused variable : variable yang tidak pernah dipergunakan. contoh
var a,b : integer;
begin
a=5
end
variable b tidak pernah dipergunakan dalam manipulasi sehingga tidak perlu dideklarasikan.
d Variable : variable yang dipakai tanpa nilai awal. contoh
var a,b : integer
begin
a=5
a=a+b
end
variable b di pergunakan tetapi tidak memiliki harga awal
- bagi compiler
a. meningkatkan efisiensi eksekusi program
b. menghilangkan useless code/kode yang tidak terpakai

1 komentar:

Unknown mengatakan...

gan sertain sumbernya hehe

Posting Komentar

Silahkan isi komentar anda disini!!!