TEST KECEPATAN KODE

9 02 2010

Mau belajar pemrograman visual basic, c#, java , internet, sharing teknologi dan informasi umum kunjungi blog sikoder di alamat ini :

http://sikoder.blogspot.com/

Bagi seorang programmer rasanya kurang lengkap memang jika kita tidak tahau apakah kode yang kita tulis pada sebuah program sudah efisien atau belum. Kususnya bagi anda pengguna bahasa pemrograman baik tingkat rendah maupun tingkat tinggi.

Disini saya hanya mencoba membandingkan kecepatan 2 blok kode dengan output yang sama namun ditulis dengan model ayng berbeda. Pada artikel kali ini saya menggunakan bahasa pemrograman Basic dengan memakai PowerBasic 9.01. Bagi anda yang belum mengenal PowerBasic mungkin ada baiknya saya berikan penjelasan sedikit tentang program ini.

PowerBasic adalah tool developer bahasa yang Basic yang mendukung Inline Assembler secara internal. Jika pada visual basic kita memakai add-in berupa ThunderVB namun dengan PowerBasic kita sudah dapat menulis OP Code dengan leluasa dan dapat menyatu dengan code basic yang kita tulis.

Kali ini saya akan membandingkan kecepatan model penulisan Artimatika yang ditulis dengan symbol-simbol operasi yang ada dibandingkan dengan artimatika dari ASM.

Berikut adalah script pertama (Aritmatika Biasa)

Local  A    As Dword

A=A+3

A=A+1

A=A*9

Output nilai A adalah 36

Berikut adalah script kedua (Aritmatika ASM)

Local A as Dword

! SUB  EAX,EAX         ; Null kan dulu (bisa juga pke ! XOR EAX, EAX)

! ADD  EAX,3              ; EAX = EAX + 3

! INC   EAX                 ; EAX = EAX + 1

! MOV EBX,9              ; EBX = 9

! MUL  EBX                 ; EAX = EBX * EAX

! MOV A,EAX               ; A = EAX

Output nilai A adalah 36 (Sama)

Kedua scrip diatas menghasilkan nilai output yang sama serta proses operasi yang sama, namun mari kita lihat data kecepatan eksekusi masing-masing blok dengan pemanggilan 5x.

Tabel Hasil Tes Kecepatan

Processor Tester : Dual Core E2144, 1.6 GH

Pemanggilan

1

2

3

4

5

Artimatika Biasa

280 cycle

232 cycle

96 cycle

240 cycle

240 cycle

Aritmatika Asm

64  cycle

64 cycle

64 cycle

64 cycle

64 cycle

Dapat kita lihat dari tabel bahwa untuk mengeksekusi blok scrip aritmatika biasa, CPU membutuhkan ketukan lebih banyak dibanding ketika mengeksekusi blok artimatika dengan ASM. Bahkan ketukan untuk mengeksekusi blok aritmatika ASM menunjukan angka yang konstan selama 5x pemanggilan, artinya fungsi ASM lebih stabil dari pada fungsi yang dibandingkan pada artikel ini.

Jadi kode mana yang lebih baik buat anda? Terserah dari pribadi anda masing-masing.

Ringkas tapi lambat, atau rumit tapi cepat !! J

Kesimpulan :

Pada kode yang singkat mungkin perbedaan waktu eksekusi tidak begitu terlihat secara kasat mata, namun pada praktiknya suatu program punya pulhan ribu baris code tentunya kecepatan akan terasa jika kita memakai kode yang lebih efektif dalam bahasa pemrograman yang kita pakai.

NB :

Mohon maaf, data yang bisa saya dapat dari PowerBasic hanya banyaknya putaran yang dibutuhkan CPU untuk mengeksekusi suatu blok, dimana saya tidak bisa mengetahui waktu yang dibutuhkan CPU saya untuk melakukan 1 putaran (ketukan) sehingga dapat digunakan untuk mencari selisih waktu. Mungkin ada pembaca yang tahu cara merubah satuan CPU cycle menjadi mili second berdasarakan tipe prosesor saya.

Pemanggilan

1

2

3

4

5

Artimatika Biasa

280 cycle

232 cycle

96 cycle

240 cycle

240 cycle

Aritmatika Asm

64  cycle

64 cycle

64 cycle

64 cycle

64 cycle


Aksi

Information

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s




%d blogger menyukai ini: