C# PerformanceCounter Kullanımı ve PerformanceCounterCategory Listeleme: İleri Düzey Performans İzleme
PerformanceCounter Nedir?
PerformanceCounter, .NET Framework içinde bulunan bir sınıftır ve uygulamalarınızın çalışma zamanındaki performansını ölçmek için kullanılır. Bu sınıf, işlemci kullanımı, bellek tüketimi, disk performansı gibi çeşitli ölçümleri gerçek zamanlı olarak izlemenizi sağlar. Bu sayede, uygulamalarınızın performans sorunlarını tanımlayabilir ve geliştirebilirsiniz.
PerformanceCounter Neden Kullanmalıyız?
- Performans İzleme ve Analiz: PerformanceCounter, uygulamalarınızın performansını izlemenizi ve analiz etmenizi sağlar. Bu, uygulamanızın kaynak tüketimini anlamanızı ve performans sorunlarını tespit etmenizi kolaylaştırır.
- Hata Ayıklama ve Optimizasyon: Uygulamanızın hangi alanlarda daha fazla kaynak kullandığını bilmek, performans sorunlarını hızlı bir şekilde tespit etmenize ve optimize etmenize yardımcı olur. Bu da uygulamanızın daha verimli çalışmasına olanak tanır.
- Uygulama Güvenilirliği: PerformansCounter, uygulamanızın sistem kaynaklarıyla nasıl etkileşimde bulunduğunu gösterir. Bu bilgiler, uygulamanızın daha güvenilir ve sağlam olmasına yardımcı olabilir.
PerformanceCounter Nerelerde Kullanılır?
- Web Uygulamaları: Web uygulamalarında, HTTP istekleri, bellek kullanımı ve veritabanı etkileşimleri gibi performans ölçümlerini izlemek için PerformanceCounter kullanılabilir.
- Windows Servisleri: Arka planda çalışan Windows servisleri, sistem kaynaklarını etkili bir şekilde kullanmalıdır. PerformanceCounter, bu servislerin performansını sürekli olarak izlemek için ideal bir araçtır.
- Veritabanı Uygulamaları: PerformansCounter, SQL Server gibi veritabanı uygulamalarında sorgu performansı, bağlantı havuzu kullanımı gibi faktörleri izlemek için kullanılabilir.
- Mobil Uygulamalar: C# PerformanceCounter, mobil uygulamalarda kullanılan kaynakları izleyerek pil ömrünü artırabilir ve genel performansı optimize edebilir.
PerformanceCounter Kullanımı
Herkese iyi günler arkadaşlar! Bu makalemizde sizlere "PerformanceCounter" kullanımından bahsedeceğim. Ayrıca en son sürümde "Category name", "Counter name" ve "InstanceName" özelliklerinin hazır olarak listelenmediği için bu bilgileri elle getireceğiz.
Şimdi, bir Windows Forms uygulamasında bu özellikleri nasıl kullanabileceğimize göz atalım.
Öncelikle, bir Form'a 3 ListBox ve 1 adet RichTextBox ekleyelim.
Adım 1: Form Load
Form yüklenirken, PerformanceCounter kategorilerini alarak ilk ListBox'a ekleyelim. Ayrıca bazı örnek kategoriler de ekleyebiliriz.
csharpprivate void Form1_Load(object sender, EventArgs e)
{
var dizi = PerformanceCounterCategory.GetCategories();
listBox1.Items.Add("Process");
listBox1.Items.Add("Processor");
for (int i = 0; i < dizi.Length; i++)
{
listBox1.Items.Add(dizi[i].CategoryName);
}
}
Adım 2: ListBox1 MouseDoubleClick
İkinci adımda, listBox1'in MouseDoubleClick olayını ele alacağız. Eğer listBox3'ün içi doluysa, önce listBox3'ü temizleyelim. Ardından seçilen kategoriye ait örnek isimlerini listBox2'ye ekleyelim.
csharpprivate void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (listBox3.Items.Count != 0)
{
listBox3.Items.Clear();
var dizi1 = new PerformanceCounterCategory(listBox1.SelectedItem.ToString());
listBox2.Items.Clear();
for (int i = 0; i < dizi1.GetInstanceNames().Length; i++)
{
listBox2.Items.Add(dizi1.GetInstanceNames()[i].ToString());
}
}
else
{
var dizi1 = new PerformanceCounterCategory(listBox1.SelectedItem.ToString());
listBox2.Items.Clear();
for (int i = 0; i < dizi1.GetInstanceNames().Length; i++)
{
listBox2.Items.Add(dizi1.GetInstanceNames()[i].ToString());
}
}
}
Adım 3: ListBox2 MouseDoubleClick
Üçüncü adımda, listBox2'nin MouseDoubleClick olayını ele alacağız. Seçilen kategori ve örnek ismine göre counter isimlerini listBox3'e ekleyelim.
csharpprivate void listBox2_MouseDoubleClick(object sender, MouseEventArgs e)
{
var dizi2 = new PerformanceCounterCategory(listBox1.SelectedItem.ToString());
var dizi3 = dizi2.GetCounters(listBox2.SelectedItem.ToString());
listBox3.Items.Clear();
for (int i = 0; i < dizi3.Length; i++)
{
listBox3.Items.Add(dizi3[i].CounterName);
}
}
Adım 4: ListBox3 MouseDoubleClick
Son adımda, listBox3'ün MouseDoubleClick olayını ele alacağız. Seçilen kategori, counter ve örnek ismine göre bir PerformanceCounter oluşturup, değerini RichTextBox'a yazdıralım.
csharpprivate void listBox3_MouseDoubleClick(object sender, MouseEventArgs e)
{
PerformanceCounter prf = new PerformanceCounter(listBox1.SelectedItem.ToString(), listBox3.SelectedItem.ToString(), listBox2.SelectedItem.ToString());
richTextBox1.Clear();
richTextBox1.AppendText(prf.NextValue().ToString());
}
Kodlarımız tamamlandı arkadaşlar! Yakın bir zamanda bu konuyla ilgili bir videoya buradan ulaşabileceksiniz!
Umarım bu makale size faydalı olur. İyi çalışmalar!
Hiç yorum yok:
Yorum Gönder