Dari N3376:
20.11.7.1 [time.clock.system] / 1:
Objek kelas system_clockmewakili waktu jam dinding dari jam waktu nyata di seluruh sistem.
20.11.7.2 [jam.stabil] / 1:
Objek kelas steady_clockmewakili jam yang nilainya time_pointtidak pernah berkurang seiring waktu fisik berjalan dan nilai time_pointkemajuannya pada kecepatan tetap relatif terhadap waktu nyata. Artinya, jam mungkin tidak bisa disetel.
20.11.7.3 [time.clock.hires] / 1:
Objek kelas high_resolution_clockmewakili jam dengan periode centang terpendek. high_resolution_clockmungkin sinonim untuk system_clockatau steady_clock.
Misalnya, jam lebar sistem mungkin dipengaruhi oleh sesuatu seperti waktu musim panas, di mana waktu aktual yang tercantum di beberapa titik di masa mendatang sebenarnya bisa menjadi waktu di masa lalu. (Misalnya di AS, pada musim gugur waktu bergerak mundur satu jam, sehingga jam yang sama dialami "dua kali") Namun, steady_clocktidak diperbolehkan untuk terpengaruh oleh hal-hal seperti itu.
Cara berpikir lain tentang "mantap" dalam hal ini adalah dalam persyaratan yang ditentukan dalam tabel 20.11.3 [time.clock.req] / 2:
Dalam Tabel 59 C1dan C2menunjukkan jenis jam. t1dan t2merupakan nilai yang dikembalikan oleh C1::now()tempat panggilan balik t1terjadi sebelum panggilan kembali t2dan kedua panggilan ini terjadi sebelumnya C1::time_point::max(). [Catatan: cara C1ini tidak membungkus antara t1dan t2. —Kirim catatan]
Ekspresi: C1::is_steady
Pengembalian: const bool
Semantik Operasional: truejika t1 <= t2selalu benar dan waktu antara detak jam konstan, sebaliknya false.
Hanya itu yang dimiliki standar tentang perbedaan mereka.
Jika Anda ingin melakukan benchmarking, taruhan terbaik Anda mungkin adalah std::high_resolution_clock, karena kemungkinan platform Anda menggunakan timer resolusi tinggi (misalnya QueryPerformanceCounterpada Windows) untuk jam ini. Namun, jika Anda melakukan benchmarking, Anda harus benar-benar mempertimbangkan untuk menggunakan timer khusus platform untuk benchmark Anda, karena platform yang berbeda menangani hal ini secara berbeda. Misalnya, beberapa platform mungkin memberi Anda beberapa cara untuk menentukan jumlah clock sebenarnya dari program yang diperlukan (terlepas dari proses lain yang berjalan pada CPU yang sama). Lebih baik lagi, dapatkan profiler asli dan gunakan itu.