Bagikan melalui


clock

Menghitung waktu jam dinding yang digunakan oleh proses panggilan.

Sintaks

clock_t clock( void );

Nilai hasil

Waktu yang berlalu sejak inisialisasi CRT pada awal proses, diukur dalam CLOCKS_PER_SEC satuan per detik. Jika waktu yang berlalu tidak tersedia atau telah melebihi waktu positif maksimum yang dapat direkam sebagai clock_t jenis, fungsi mengembalikan nilai (clock_t)(-1).

Keterangan

Fungsi ini clock memberi tahu berapa banyak waktu jam dinding yang telah berlalu sejak inisialisasi CRT selama proses dimulai. Fungsi ini tidak sepenuhnya sesuai dengan ISO C, yang menentukan waktu CPU bersih sebagai nilai pengembalian. Untuk mendapatkan waktu CPU, gunakan fungsi Win32 GetProcessTimes . Untuk menentukan waktu yang berlalu dalam detik, bagi nilai yang dikembalikan oleh clock fungsi dengan makro CLOCKS_PER_SEC.

Diberikan cukup waktu, nilai yang dikembalikan oleh clock dapat melebihi nilai positif maksimum .clock_t Ketika proses telah berjalan lebih lama, nilai yang dikembalikan oleh clock selalu (clock_t)(-1), seperti yang ditentukan oleh standar ISO C99 (7.23.2.1) dan standar ISO C11 (7.27.2.1). Microsoft menerapkan clock_t sebagai long, bilangan bulat 32-bit yang ditandatangani, dan CLOCKS_PER_SEC makro didefinisikan sebagai 1000. Makro ini memberikan nilai pengembalian fungsi maksimum clock 2147483,647 detik, atau sekitar 24,8 hari. Jangan mengandalkan nilai yang dikembalikan oleh clock dalam proses yang telah berjalan lebih lama dari jumlah waktu ini. Anda dapat menggunakan fungsi 64-bit time atau fungsi Windows QueryPerformanceCounter untuk merekam proses yang berlalu bertahun-tahun.

Persyaratan

Rutin Header yang diperlukan
clock <time.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_clock.c
// This sample uses clock() to 'sleep' for three
// seconds, then determines how long it takes
// to execute an empty loop 600000000 times.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// Pauses for a specified number of clock cycles.
void do_sleep( clock_t wait )
{
   clock_t goal;
   goal = wait + clock();
   while( goal > clock() )
      ;
}

const long num_loops = 600000000L;

int main( void )
{
   long    i = num_loops;
   clock_t start, finish;
   double  duration;

   // Delay for a specified time.
   printf( "Delay for three seconds\n" );
   do_sleep( (clock_t)3 * CLOCKS_PER_SEC );
   printf( "Done!\n" );

   // Measure the duration of an event.
   start = clock();
   while( i-- )
      ;
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "Time to do %ld empty loops is ", num_loops );
   printf( "%2.3f seconds\n", duration );
}
Delay for three seconds
Done!
Time to do 600000000 empty loops is 1.354 seconds

Lihat juga

Manajemen waktu
difftime, , _difftime32_difftime64
time, , _time32_time64