Optimalkan kinerja .NET
1) Hindari menggunakan ArrayList.
Karena objek apa pun yang ditambahkan ke ArrayList harus dikotakkan sebagai tipe System.Object, ketika data diambil dari ArrayList, data tersebut harus dibuka kotaknya kembali ke tipe sebenarnya. Disarankan untuk menggunakan tipe koleksi khusus daripada ArrayList. .net 2.0 menyediakan tipe baru yang disebut generik, yang merupakan tipe kuat. Menggunakan koleksi generik dapat menghindari boxing dan unboxing serta meningkatkan kinerja.
2) Gunakan HashTale alih-alih jenis koleksi kamus lainnya (seperti StringDictionary, NameValueCollection, HybridCollection). HashTable dapat digunakan saat menyimpan sejumlah kecil data.
3) Deklarasikan konstanta untuk wadah string, dan jangan langsung merangkum karakter dalam tanda kutip ganda " ".
//menghindari
//
Obj Objek Saya = Objek Saya baru();
obj.Status = "AKTIF";
//Direkomendasikan
const string C_STATUS = "AKTIF";
Obj Objek Saya = Objek Saya baru();
obj.Status = C_STATUS;
4) Jangan gunakan Huruf Besar atau Huruf Kecil untuk mengonversi string sebagai perbandingan. Gunakan String.Bandingkan, yang dapat mengabaikan huruf besar-kecil untuk perbandingan.
contoh:
const string C_VALUE = "BANDINGKAN";
if (String.Bandingkan(sVariable, C_VALUE, true) == 0)
{
Console.Write("SAMA");
}
5) Gunakan StringBuilder daripada menggunakan karakter rangkaian string "+",
//Hindari
String sXML = "<induk>";
sXML += "<anak>";
sXML += "Data";
sXML += "</anak>";
sXML += "</parent>";
//Direkomendasikan
StringBuilder sbXML = StringBuilder baru();
sbXML.Append("<parent>");
sbXML.Tambahkan("<anak>");
sbXML.Tambahkan("Data");
sbXML.Tambahkan("</anak>");
sbXML.Append("</parent>");
6) Jika Anda hanya membaca dari objek XML, hindari menggunakan XMLDocumentt, sebagai gantinya gunakan XPathDocument, yang hanya dapat dibaca sehingga meningkatkan kinerja.
Jika Anda hanya membaca data dari objek XML, gunakan XPathDocument baca-saja, bukan XMLDocument, untuk meningkatkan kinerja.
//menghindari
XmlDocument xmld = XmlDocument baru();
xmld.BebanXml(sXML);
"
).
InnerText
XPathDocument xmldContext = XPathDocument baru(StringReader baru(oContext.Value));
XPathNavigator xnav = xmldContext.CreateNavigator();
XPathNodeIterator xpNodeIter = xnav.Select("paket/anak");
iCount = xpNodeIter.Hitungan;
xpNodeIter = xnav.SelectDescendants(XPathNodeType.Element, false);
while(xpNodeIter.MoveNext())
{
sCurrValues += xpNodeIter.Current.Value+"~";
}
7) Hindari mendeklarasikan variabel di badan perulangan. Deklarasikan variabel di luar perulangan dan inisialisasi variabel di badan perulangan.
//menghindari
untuk(int i=0; i<10; i++)
{
SomeClass objSC = baru SomeClass();
.
.
.
}
//menyarankan
SomeClass objSC = null;
untuk(int i=0; i<10; i++)
{
objSC = SomeClass baru();
.
.
.
}
8) Tangkap pengecualian yang ditentukan, jangan gunakan System.Exception umum
//Hindari
mencoba
{
<beberapa logika>
}
tangkapan (Pengecualian kecuali)
{
<Penanganan kesalahan>
}
//menyarankan
mencoba
{
<beberapa logika>
}
tangkapan(Sistem.NullReferenceException kecuali)
{
<Penanganan kesalahan>
}
tangkapan(Sistem.ArgumentOutOfRangeException exc)
{
<Penanganan kesalahan>
}
tangkapan(Sistem.InvalidCastException kecuali)
{
<Penanganan kesalahan>
}
9) Saat menggunakan Try...catch...finally, sumber daya yang ditempati seperti koneksi, aliran file, dll. harus dilepaskan pada akhirnya. Jika tidak, sumber daya yang ditempati tidak dapat dilepaskan setelah kesalahan tertangkap di Catch.
mencoba
{
...
}
menangkap
{...}
Akhirnya
{
koneksi.close()
}
10) Hindari penggunaan panggilan rekursif dan loop bersarang. Menggunakannya akan sangat mempengaruhi kinerja.
11) Gunakan strategi caching yang tepat untuk meningkatkan kinerja. Itu saja untuk hari ini. Saya akan menulis lebih banyak ketika saya punya waktu.
http://www.cnblogs.com/timone/archive/2006/11/17/563965.html