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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk