jump to navigation

Performa Exception Dibandingkan Return Value 23 Juni 2008

Posted by firstyuyu in .net framework.
add a comment

Pada artikel Exception Design (Bagian 01) kita sudah membahas mengenai keuntungan-keuntungan penggunaan exception. Namun exception juga mempunyai satu kekurangan, yaitu masalah performa. Pada artikel ini, kita akan mencoba melihat sejauh mana perbedaan performa exception dibandingkan dengan return value. Diharapkan, dari pembahasan ini bisa menambah wawasan kita ketika mendesain sebuah exception. (lebih…)

Iklan

Membuat Kelas StopWatch untuk Mengukur Waktu Eksekusi Kode Program 18 Juni 2008

Posted by firstyuyu in .net framework.
10 comments

Sering kali kita ingin mengukur waktu eksekusi kode program yang kita jalankan. Terutama jika kita sedang membandingkan antara beberapa alternatif algoritma untuk mencari algoritma yang paling cepat. Kita bisa membuat sendiri pengukur waktu seperti ini dengan memanfaatkan High-Resolution Timer. (lebih…)

Melontarkan Kembali (Rethrow) Sebuah Exception 13 Juni 2008

Posted by firstyuyu in .net framework.
add a comment

Pada beberapa kasus, ketika terjadi exception, kita mungkin ingin melakukan rollback terhadap operasi yang dilakukan untuk menjaga agar state tetap konsisten. Namun kita tidak ingin menanganin exception tersebut karena kita tahu bahwa layer yang lebih tinggi yang akan menanganinya. Di sini, proses yang terjadi ialah kita menangkap exception, melakukan rollback terhadap operasi yang dijalankan, lalu melontarkan kembali (rethrow) exception yang tadi kita tangkap. (lebih…)

Statemen using di C# 28 Mei 2008

Posted by firstyuyu in .net framework, Garbage Collector.
add a comment

Pada artikel Menggunakan Dispose Pattern, dijelaskan bagaimana cara memanggil method Dispose atau Close secara eksplisit untuk membebaskan resource yang dipegang oleh sebuah obyek. Jika kita memang ingin memanggil kedua method tersebut secara eksplisit,sangat disarankan untuk menempatkan pemanggilan tersebut di dalam blok finally pada exception handling. Cara ini akan menjamin bahwa kode pembersihan akan dieksekusi. Contoh berikut menunjukkan bagaimana memanggil method Dispose atau Close dari dalam blok finally: (lebih…)

Menggunakan Dispose Pattern 27 Mei 2008

Posted by firstyuyu in .net framework, Garbage Collector.
add a comment

Sekarang mari kita lihat bagaimana kita menggunakan tipe data yang menawarkan dispose pattern. Kelas System.IO.FileStream menawarkan kemampuan untuk membuka sebuah file, membaca byte dari file, menuliskan byte ke file, dan menutup file. Ketika obyek FileStream dibuat, (lebih…)

Dispose Pattern: Memaksa Obyek untuk Membersihkan Diri 26 Mei 2008

Posted by firstyuyu in .net framework, Garbage Collector.
add a comment

Method Finalize sungguh sangat berguna karena ia memberikan jaminan bahwa native resource pasti dibebaskan ketika obyek yang bersangkutan dibersihkan oleh garbage collector. Namun, masalah dengan method Finalize adalah tidak ada jaminan tentang kapan ia akan dieksekusi, dan karena ia bukan method public, maka developer tidak bisa memanggilnya. (lebih…)

Memanipulasi String secara Efisien dengan StringBuilder 3 April 2008

Posted by firstyuyu in .net framework.
add a comment

Manipulasi string yang kita lakukan dengan method-method pada kelas String tidaklah menawarkan performa yang sangat bagus, bahkan cenderung lambat. Apalagi jika manipulasi tersebut terjadi dalam sebuah looping yang sangat banyak. Hal ini karena obyek String bersifat immutable sehingga setiap kali pemanggilan sebuah method untuk memanipulasi string, akan mengembalikan sebuah obyek string baru. Jika dikalikan dengan jumlah looping yang sangat besar, tentu hal ini akan dengan cepat memenuhi memori di managed heap. Untuk mengatasi ini, Microsoft telah merancang sebuah kelas khusus untuk memanipulasi string dengan sangat efisien. Kelas ini bernama StringBuilder yang ada di dalam namespace System.Text. (lebih…)

Secure String 3 April 2008

Posted by firstyuyu in .net framework.
add a comment

Sangat sering, obyek String berisi data-data sensitif seperti password user atau informasi kartu kredit. Sayangnya, pada obyek String yang biasa kita gunakan, jika ada sebuah unsafe/unmanaged code yang yang mempunyai hak untuk dieksekusi, ia bisa melakukan pengintaian pada lokasi memori dimana sebuah proses berjalan, mencari string yang berisi data-data sensitif, lalu menggunakan informasi yang diperolah untuk tujuan yang tidak benar. Selain itu, karena string bersifat immutable, maka seiring dengan manipulasi yang kita lakukan, obyek-obyek string temporer akan berserakan di memori sehingga jika obyek-obyek string tersebut berisi data-data sensitif, maka data tersebut akan semakin mudah di dapat oleh orang yang berniat jahat. (lebih…)

Encoding dan Decoding pada String Basis 64 2 April 2008

Posted by firstyuyu in .net framework.
add a comment

Saat ini, format encoding dari array byte menjadi string basis 64 sangat popular digunakan. Kita beruntung karena FCL (Framework Class Library) telah mempunyai beberapa method untuk melakukan encoding maupun decoding pada string basis 64. Method-method ini merupakan member static yang terdapat pada kelas System.Convert. (lebih…)

String Interning 1 April 2008

Posted by firstyuyu in .net framework.
add a comment

Jika kita mempunyai beberapa string di memori dengan nilai yang sama, maka kita sebenarnya telah melakukan pemborosan memori karena string bersifat immutable. Akan jauh lebih efisien jika hanya ada satu instance string di memori dan semua variabel string yang nilainya sama, cukup merujuk ke instance tersebut. (lebih…)