jump to navigation

Exception Design (Bagian 03) – Memilih Tipe Exception yang Tepat 10 Juni 2008

Posted by firstyuyu in Exception Design.
add a comment

Setelah kita memutuskan kapan akan melontarkan exception, maka langkah selanjutnya ialah memilih tipe exception yang tepat untuk dilontarkan. Berikut ini panduannya: (lebih…)

Exception Design (Bagian 02) – Panduan Umum tentang Exception 9 Juni 2008

Posted by firstyuyu in Exception Design.
5 comments

Pada artikel bagian 01 kita telah membahas mengenail kelebihan menggunakan exception dibandingkan return value. Namun meskipun demikian, ada beberapa kasus khusus di mana kita bisa melakukan kompromi untuk tidak menggunakan exception. Biasanya hal ini berkaitan dengan masalah performa dari exception itu sendiri. Mengenai isu performa ini, akan kita bahas pada artikel berikutnya. Namun pada hampir semua kasus, kita jauh lebih baik menerapkan mekanisme exception ini. Berikut ini panduan umum tentang exception: (lebih…)

CLR Execution Model (Bagian 02) – Menggabungkan Managed Module Menjadi Sebuah Assembly 8 Juni 2008

Posted by firstyuyu in CLR.
add a comment

Pada bagian 01, kita telah membahas tentang managed module. Namun sebenarnya, CLR tidak bekerja dengan managaed module. Ia bekerja dengan assembly. Assembly merupakan sebuah konsep abstrak yang mungkin pertama kali agak sulit dicerna. Pertama, sebuah assembly merupakan pengelompokan secara logis yang terdiri dari managed module atau resoruce file. Kedua, assembly merupakan unit terkecil dalam kaitannya dengan reuse, security, dan versioning. Di dalam terminologi CLR, sebuah assembly adalah apa yang biasa kita sebut komponen. (lebih…)

CLR Execution Model (Bagian 01) – Kompilasi Source Code Menjadi Managed Module 7 Juni 2008

Posted by firstyuyu in CLR.
7 comments

CLR (Common Language Runtime), sebagaimana namanya, adalah sebuah runtime yang bisa digunakan oleh banyak bahasa pemrograman. Fitur-fitur yang dimiliki CLR akan tersedia di semua bahasa pemrograman yang berjalan di atasnya. Sebagai contoh, CLR menggunakan exception untuk melaporkan terjadinya kesalahan. Maka semua bahasa pemrograman yang berjalan di atas CLR juga akan menggunakan exception untuk pelaporan kesalahan. Contoh yang lain, CLR mengizinkan kita untuk membuat thread, maka semua bahasa yang berjalan di atas CLR juga bisa membuat thread. (lebih…)

Exception Design (Bagian 01) – Keuntungan Menggunakan Exception Dibandingkan dengan Return Value 6 Juni 2008

Posted by firstyuyu in Exception Design.
4 comments

Ada banyak keuntungan yang ditawarkan oleh mekanisme exception handling dibandingkan dengan penggunaan return value pada mekanisme pelaporan kesalahan sebuah aplikasi. Karena itu, suatu framework yang baik sudah seharusnya mengadopsi mekanisme ini untuk masalah penanganan kesalahannya. Berikut ini keunggulan menggunakan exception: (lebih…)

Memonitor Kinerja Garbage Collector 5 Juni 2008

Posted by firstyuyu in Garbage Collector.
add a comment

Ada beberapa method yang bisa kita gunakan untuk memonitor kinerja garbage collector. Kelas GC menawarkan dua method berikut yang bisa kita panggil untuk mengetahui berapa kali pembersihan telah dilakukan untuk generation tertentu atau berapa banyak total memori yang sedang dipakai oleh obyek-obyek yang ada di managed heap. (lebih…)

Memprediksi Tingkat Kesuksesan Operasi yang Membutuhkan Banyak Memori 4 Juni 2008

Posted by firstyuyu in Garbage Collector.
add a comment

Terkadang kita berada pada situasi dimana kita mengetahui bahwa algoritma yang kita jalankan akan membutuhkan memori yang sangat besar. Kita mulai menjalankan algoritma tersebut, dan ketika memori yang tersedia tidak mencukupi, CLR akan melontarkan OutOfMemoryException. Pada kasus seperti ini, seringkali algoritma telah berjalan sekian persen (mungkin hampir selesai) tapi karena kehabisan memori, maka apa yang telah dilakukan menjadi sia-sia. (lebih…)

Managed Code yang Membungkus Native Code yang Jumlahnya Terbatas 3 Juni 2008

Posted by firstyuyu in Garbage Collector.
add a comment

Ada beberapa native resource yang jumlahnya dibatasi. Sebagai contoh, misalnya di Windows ada batasan jumlah file yang bisa dibuka oleh sebuah aplikasi. Dari perspektif CLR, sebuah proses bisa mengalokasikan ratusan managed object (yang menggunakan sedikit memori) sebelum melakukan pembersihan. Tetapi jumlah native resource yang terbatas ini tentu akan menyebabkan terjadinya exception jika CLR mencoba mengalokasikan melebihi batas yang ditentukn. (lebih…)

Managed Code Berukuran Kecil yang Membungkus Native Resource yang Berukuran Besar 2 Juni 2008

Posted by firstyuyu in Garbage Collector.
add a comment

Kadang-kadang, sebuah native resource bisa berukuran sangat besar, sementara managed object yang membungkusnya hanya membutuhkan memori yang sangat kecil. Salah satu contoh yang sangat terlihat adalah bitmap. Sebuah bitmap bisa menempati native memory hingga beberapa megabyte. Namun managed object yang membungkusnya berukuran sangat kecil karena hanya berisi sebuah HBITMAP yang hanya berukuran 4 atau 8 byte saja. (lebih…)

Perlakukan Terhadap Obyek yang Berukuran Besar 1 Juni 2008

Posted by firstyuyu in Garbage Collector.
add a comment

Setiap obyek yang berukuran 85.000 byte atau lebih akan dianggap sebagai obyek yang berukuran besar. Obyek seperti ini akan dialokasikan di dalam sebuah heap khusus. Obyek-obyek didalam heap khusus ini akan dibersihkan sebagaimana obyek-obyek kecil lainnya seperti yang telah kita diskusikan sebelumnya. Namun, (lebih…)