Qt có QElapsedTimer
hỗ trợ đo lên đến nano giây. Tôi không thể làm chứng cho nó chính xác như thế nào, IIRC nó sử dụng các triển khai khác nhau trên các nền tảng khác nhau. Đáng buồn thay, nó là C++, có thể không phù hợp với bạn. Ngoài ra:
Trên nền tảng không cung cấp độ phân giải nano giây, giá trị được trả về sẽ là ước tính tốt nhất có sẵn.
Chức năng clock()
không sao cho các phép đo thô, nhưng nó hoạt động trong phạm vi mili giây. Trái với tên của nó, tôi không nghĩ rằng nó đo trong đồng hồ CPU, vì bộ xử lý hiện đại có thể thay đổi một chút, khiến cho việc xác định thời gian thực tế chỉ dựa vào đồng hồ CPU. IMO khái niệm này ngày trở lại những ngày khi tần số CPU được liên tục, không có quản lý năng lượng, không có "turbo boost" tự động ép xung hoặc bất cứ điều gì.
EDIT: Cũng thấy điều này (time.h):
int clock_gettime(clockid_t clk_id, struct timespec *tp);
... and the target struct...
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
... and the clock options...
CLOCK_REALTIME
System-wide realtime clock. Setting this clock requires appropriate privileges.
CLOCK_MONOTONIC
Clock that cannot be set and represents monotonic time since some unspecified starting point.
CLOCK_PROCESS_CPUTIME_ID
High-resolution per-process timer from the CPU.
CLOCK_THREAD_CPUTIME_ID
Thread-specific CPU-time clock.
Tôi nghĩ rằng đọc: 'difftime (,)' –
thể trùng lặp của [Lấy thời gian hiện tại trong mili giây] (http://stackoverflow.com/questions/3756323/getting-the-current-time -in-mili giây) –
trùng lặp của http://stackoverflow.com/questions/6749621/high-resolution-timer-in-linux và rất nhiều câu hỏi khác ở đây –