Dưới Windows 7 trên bộ vi xử lý thế hệ hiện tại, đây là bộ đếm thời gian chính xác cao (nanosecond) đáng tin cậy bên trong CPU (HPET).
Theo các phiên bản trước và trên các thế hệ vi xử lý trước đó, đó là "cái gì đó", có nghĩa là khá nhiều mọi thứ. Thông thường nhất, nó là giá trị được trả về bởi lệnh RDTSC (hoặc một giá trị tương đương, trên non-x86), có thể hoặc không đáng tin cậy và không phụ thuộc vào đồng hồ. Lưu ý rằng RDTSC (ban đầu, theo định nghĩa, nhưng không phải bây giờ nữa) không đo lường thời gian, nó đo lường chu kỳ.
Trên các CPU hiện tại-và-thế hệ trước, RDTSC thường là đáng tin cậy và đồng hồ độc lập (tức là bây giờ nó là thực sự thời gian đo), trên trước hệ -previous, đặc biệt là trên điện thoại di động hoặc một số đa cpu giàn khoan nó không phải là. Các "bộ đếm thời gian" có thể tăng tốc và giảm tốc, và thậm chí là khác nhau trên các CPU khác nhau, gây ra "du hành thời gian".
Edit: Các constant tsc
cờ trong CPUID (0x80000007) có thể được sử dụng để nói cho dù RDTSC là đáng tin cậy hay không (mặc dù điều này không thực sự giải quyết vấn đề, bởi vì phải làm gì nếu nó không phải là, nếu có không có thay thế...).
Trên các hệ thống cũ hơn (như, 8-10 tuổi), một số bộ tính giờ khác có thể được sử dụng cho QueryPerformanceCounter. Những người có thể không có độ phân giải cao ở tất cả, cũng không được terribly chính xác.
Re: "Lưu ý rằng RDTSC không đo thời gian, nó đo chu kỳ.", Điều quan trọng cần lưu ý là bạn có thể tính thời gian tính bằng giây trực tiếp là 'dấu * fres '. – Polynomial
@ Đa thức: Không, bạn không thể, vì freq! = Const. Trên khá nhiều hệ thống _every_ ngày nay (và hầu hết các hệ thống trong nửa thập kỷ qua) tần số đang được tự động thu nhỏ để tiết kiệm điện. – Damon
Thú vị. Phương án thay thế là gì? – Polynomial