Bir sürecin işlemci zamanını almak için
clock işlevini kullanabilirsiniz. Bu oluşum
time.h başlık dosyasında bildirilmiştir.
Genel olarak, clock işlevi ilgilenilen bir zaman aralığının başında ve sonunda çağrılır ve bu değerler birbirinden çıkarılıp sonuç CLOCKS_PER_SEC ile bölünerek işlemci süresi aşağıdaki gibi elde edilir:
#include <time.h>
clock_t start, end;
double cpu_time_used;
start = clock();
... /* Burada bir takım işlemler yapılıyor. */
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
Belirli süreyi elde etmek için tek bir işlemci zamanı değerini kullanmayın.
[99] Ya yukarıdaki gibi bir çıkartma işlemi yapın ya da doğrudan işlemci süresini sorgulayın. Bkz.
İşlemci Süresinin Sorgulanması.
Farklı makineler ve işletim sistemlerinde işlemci zamanının hesabı az ya da çok çılgıncadır. Bunlarda, dahili işlemci saati saniyenin yüzde biri ile milyonda biri arasında bir çözünürlüğe sahiptir.
Bu makronun değeri clock işlevi tarafından ölçülen saniyedeki saat tiki sayısını verir. POSIX standardı bu değerin gerçek çözünürlükten bağımsız olarak bir milyon olmasını gerektirir.
Bu, CLOCKS_PER_SEC değerinin atıl olmuş eşdeğeridir.
Bu, clock işlevinin dönüş değerinin türüdür. clock_t türünden değerler saat tiklerinin sayısıdır.
Bu işlev çağrıldığı sürecin o anki işlemci zamanı ile döner. İşlemci zamanı ölçülmüyorsa ya da gösterilemiyorsa, clock işlevi clock_t cinsinden (-1) ile döner.