Ana içeriğe atla

C# İle Bilgisayarın Kullandığı CPU Miktarının Yüzdesel Ölçümü

Bu makalemizde C# programlama dilinde Bilgisayarın Kullandığı CPU Miktarının Yüzdesel Ölçümünün nasıl yapıldığını anlatmaya çalışacağım.
Buna nerede ihtiyacımız olacak diye düşünmeyin. Çünkü özellikle Windows sunucularla çalıştığınızda çok işinize yarayacağını söyleyebilirim... Örneğin bir Ddos atağının ilk belirtisi CPU yükselmesi sonra da RAM yükselmesi, veri yollarının kitlenmesi ... dir
Konuyu fazla uzatmadan biraz açıklama yaparak kodları vermeye çalışacağım.
C# programlama dilinde bilgisayarlara ilgili analizleri yapabilmek için System.Diagnostics isim uzayı yer alır. Biz de CPU kullanımını ölçebilmek için System.Diagnostics isim uzayının altında yer alan PerformanceCounter sınıfını kullanacağız. Kullanılan CPU miktarını ölçmek için PerformanceCounter sınıfını tanımlarken bir kaç parametrenin verilmesi gerekiyor. Daha doğrusu birkaç parametrenin değeri string olarak girilmesi gerekiyor. 

Kullanılan CPU miktarının ölçülebilmesi için PerformanceCounter sınıfının tanımlanması ve parametrelerin belirtilmesi aşağıdaki gibi olmalıdır.

        PerformanceCounter cpuCounter = new PerformanceCounter();
       cpuCounter.CategoryName = "Processor";
       cpuCounter.CounterName = "% Processor Time";
       cpuCounter.InstanceName = "_Total";

Not: PerformanceCounter  sınıfında Constructor olarak bu parametreleri girecek yapı da mevcuttur. Yani değerleri direk PerformanceCounter sınıfını tanımlarken de girebiliriz. 

PerformanceCounter  sınıfını tanımladıktan sonra yapmamız gereken işlem ise PerformanceCounter  sınıfı içinde yer alan NextValue metodunu kullanmaktır. 
Bu metot bize CPU kullanım oranını verecektir. 

Burada dikkat edilmesi gereken bir nokta var ki NextValue metodunun ilk değeri her zaman sıfırdır. Bu yüzden belirli bir süre örneğin 1 saniye kadar bekleyip tekrar NextValue metodunu kullanırsak doğru değeri elde edebiliriz. Birazdan örnek uygulamada da göreceğiniz gibi kullanımı tercih edebilirsiniz...

            dynamic firstValue = cpuCounter.NextValue();//Bu değer her zaman sıfırdır.
       System.Threading.Thread.Sleep(1000);
       dynamic secondValue = cpuCounter.NextValue();

Görüldüğü gibi C# programlama dilinde bilgisayarın kullandığı CPU değerini ölçmek bu kadar basittir. Ama bundan sonra dikkat etmeniz gereken bir kaç nokta vardır. Bunlardan birincisi anlık olarak elde ettiğiniz CPU kullanım değerinin sizin için doğru bir değer olmayabilir. Bu yüzden bir kaç defa ölçüm yapıp bu değerlerin ortalamasını almak sizi daha doğru sonuca götürecektir. Nitekim son olarak verdiğim kodlarda ben de böyle yapmaya çalıştım.

Bir diğer önemli nokta ise bu ölçüm değerinin tüm bilgisayar için değil bilgisayarın çalıştığı çekirdek ve işlemci için geçerli olmasıdır. Yani en doğru hesaplama için bilgisayarın çekirdek ve işlemci sayıları kadar thread oluşturup bunların hepsinde ölçüm yapıp ortalamasını almak gerekiyor. Ama tabii ki bu kodlardan da elde ettiğiniz bir değer size genel olarak bilgisayarın CPU kullanımı konusunda bir fikir verecektir...

Makalenin sonlarında kodları bir arada metot halini sizinle paylaşmak istiyorum...

**************************************************
        public object CPUKullanimYuzdesiHesapla()
        {
            PerformanceCounter cpuCounter = new PerformanceCounter();
            cpuCounter.CategoryName = "Processor";
            cpuCounter.CounterName = "% Processor Time";
            cpuCounter.InstanceName = "_Total";
            
            dynamic firstValue = cpuCounter.NextValue();
            System.Threading.Thread.Sleep(1000);
            dynamic secondValue = cpuCounter.NextValue();

            System.Threading.Thread.Sleep(1000);
            dynamic secondValue1 = cpuCounter.NextValue();

            System.Threading.Thread.Sleep(1000);
            dynamic secondValue2 = cpuCounter.NextValue();

            return (secondValue + secondValue1 + secondValue2) / 3;
        }
***************************************************

Son olarak konuyu özetleyecek olursak, bu makalemizde C# programlama dilin bilgisayarın kullandığı CPU miktarının yüzdesel olarak nasıl hesaplanacağını gördük. Bunun için System.Diagnostics isim uzayının altında yer alan PerformanceCounter sınıfını kullandık. PerformanceCounter sınıfı içinde CPU kullanım ölçümü için gerekli parametre ve değerlerini belirttik. Bunun dışında hassas uygulamalar için sonuçları iyileştirmek için bir kaç yöntem de önerilmiştir...

Umarım makalem faydalı olmuştur. Sorularınız olursa bana yazabilirsiniz...

Yorumlar

  1. Güzel bir anlatım olmuş. Bir test uygulaması yazarken kullandım. Teşekkürler...

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4