C Dilinde Clock() Fonksiyonu

C Dilinde Clock Fonksiyonu



Bunda Linux İpucu makalesinde size nasıl kullanılacağını göstereceğiz. saat() Belirli bir işlemin veya iş parçacığının yürütme sürelerini ölçmek için C dilinde bulunan kaynaklardan biri olan işlev.

Bu zaman dilimleri önemsiz gibi görünse de, bu küçük zaman dilimlerini ölçme ve hesaplama yeteneğinin sistemin veya sürecin kendisinin doğruluğunda kritik faktörler olduğu kritik durumlar vardır. Nasıl olduğuna dair teorik bir açıklama yapacağız. saat() işler, işleyişini ve bu amaçla kullandığı ölçü birimlerini açıklar.







Ardından, kod parçaları ve görüntüleri içeren pratik örnekler kullanarak, farklı sistemlerde gerçek zamanlı süreçlerde kritik zamanları ölçmek için bu işlevi net ve ayrıntılı bir şekilde nasıl uygulayabileceğinizi göreceğiz.



Saat() İşlev Sözdizimi:



saat_t saat ( geçersiz )





C Dilinde Clock() İşlev Açıklaması

Clock() işlevi çağrıldığında boştur. Girdi bağımsız değişkeni içermez ve arama sırasında “clock_t” içindeki saatin tıklama sayısını döndürür.

Nabız sayısı, uygulama başlatıldığında sıfırdan başlar ve kullanıcı veya sistem uygulamadan çıkana kadar devam eder ve yaklaşık her 72 dakikada bir taşma ile sıfırlanır. clock() işlevi bu sayacı değiştirmez veya üzerinde denetime sahip değildir; sadece çağrıldığında değerini alır.



Programın toplam yürütme süresini ölçmek için, programın sonunda sadece bir kez clock()'u çağırmamız gerekir. Programın bir noktasından diğerine geçen süreyi ölçmek için clock( ) fonksiyonunu çağırmamız ve elde edilen iki veriyi hesaplamamız gerekir.

İki arama arasında geçen tikleri belirlemek için hesaplama saat() fonksiyon, birinci aramanın sonucunu ikinci aramanın sonucundan çıkararak yapılır. Programın bir noktasından diğerine geçen sürenin miktarını belirlemek için bir örneğe bakalım.

bu saat() işlev “time.h” başlık işlevlerinde tanımlanır. Kullanabilmemiz için aşağıdaki görseldeki gibi “.c” veya “.h” kod dosyamıza dahil etmemiz gerekmektedir.

#include

Geçen Saat Tiklerini Programda Bir Noktadan Başka Bir Noktaya Clock() Fonksiyonu İle Nasıl Getirilir

Bu örnekte, programda bir noktadan diğerine geçen tik sayısını nasıl elde edeceğimizi göreceğiz. Bu iki nokta, iki çağrıdan birine karşılık gelir. saat() sırasıyla işlev. Bunu anlamak için aşağıdaki kodu görelim:





#include

#include



geçersiz ana ( )



{

saat_t tikler_ini, tikler_end;

çift ​​tıklama;

ticks_ini = saat ( ) ; // başlangıç ​​ölçmek

printf ( 'başlangıç ​​ölçüsünü işaretler  %ld \n ' , ticks_ini ) ;

için ( int a = 0 ; a < = 456450 ; bir++ ) ;



ticks_end = saat ( ) ; // ölçü durağı

tikler = tikler_end - tikler_ini;

printf ( 'keneler bitiş ölçüsü  %ld \n ' ,  tikler_end ) ;

printf ( 'ölçü arasında geçen süre  %f \n ' ,  işaretler ) ;

dönüş ;

}



İlk olarak, iki değişkeni oluşturuyoruz, ticks_ini ve ticks_end , burada clock() sonucunu iki çağrısında saklıyoruz. Geçen tik sayısını ve tamsayıyı elde etmek için hesaplıyoruz keneler , toplam geçen işaretlerin nihai sonucunu sakladığımız.

Ardından, saat() 'ana' işlevimizde işlev görür ve daha önce tanımlanmış saat işaretlerini ticks_ini programın başlangıcından bu fonksiyona yapılan ilk çağrıya kadar geçen değişken. Bu değeri görüntülemek için printf() işlevini kullanırız.

ile oluşturduğumuz bu gecikmeden sonra için , biz diyoruz saat() Bu noktaya kadar olan tiklerin sayısını almak için ikinci kez çalıştırın. printf() fonksiyonu ile sonucu ekrana yazdırıyoruz. Daha sonra, birinci ve ikinci aramalar arasında geçen tam tik sayısının sonucunu alırız. saat() çıkararak ticks_ini itibaren ticks_end ve sonucu, printf() ile konsola çıktısını aldığımız değişken işaretlerinde saklamak.

Bu şekilde kodda bir noktadan diğerine geçen tikleri elde etmiş oluyoruz.

Clock() Fonksiyonu İle Elde Edilen Tik Sayısını Saniyeye Dönüştürme

Programın başlamasından bu yana veya bir noktadan diğerine geçen tik sayısını elde ettikten sonra, tiklerle ifade edilen bu süreyi önceki örneğin sonucunu zaman cinsinden önceden tanımlanmış sabite bölerek saniyeye çevirebiliriz. SAATLER _BAŞINA_ SANİYE, aşağıdaki pasajda gösterildiği gibi:

tikler = ( ticks_end - ticks_ini ) / ( çift ) CLOCKS_PER_SEC;

printf ( 'ölçüm arasında geçen saniye sayısı  %f \n ' ,  işaretler ) ;

Çözüm

Bunda Linux İpucu makalesinde, size nasıl uygulanacağını gösterdik. saat() sistem saatinin tiklerinde zaman ölçümleri yapmak için işlev. Çalışan uygulama içerisinde bu sürelerin tamamını veya bir kısmını nasıl ölçebileceğinizi de anlattık. Sonuçları saniyelere nasıl çevireceğinizi gösterdik. Bu makaleyi yararlı bulduğunuzu umarız. Sitenin arama motorunu kullanarak bulabileceğiniz yazılarımızda C dili hakkında daha fazla ipucu bulabilirsiniz.