2011-09-23 29 views
12

Có điều gì đó (đã lên kế hoạch) trong Thư viện D để hỗ trợ bộ tính giờ chính xác cao như QueryPerformanceCounter trong c + + không? Làm thế nào tôi có thể có một bộ đếm thời gian chính xác cao trong D?QueryPerformanceCounter in D?

Hoặc nếu không có sẵn, thì hẹn giờ percision cao nhất trong D là bao nhiêu?

+1

QueryPerformanceCounter là một phần của winapi. Bạn không thể gọi hàm winapi trong D? – Andrey

Trả lời

14

std.datetime có cấu trúc StopWatch để xử lý thời gian chính xác - và nó sử dụng QueryPerformanceCounter nội bộ trên Windows. Trên các hệ điều hành khác, nó sử dụng bất kỳ đồng hồ đơn điệu chính xác cao thích hợp nào cho chúng.

Nếu những gì bạn cần là dấu hiệu của đồng hồ hệ thống thay vì hẹn giờ cụ thể, bạn có thể gọi Clock.currSystemTick cho dấu hiện tại của đồng hồ hệ thống (hoặc Clock.currAppTick cho số lượng đồng hồ hệ thống từ khi ứng dụng bắt đầu). Nhưng StopWatch là những gì bạn muốn nếu bạn muốn hẹn giờ.