Trong Windows, có một số chức năng hữu ích như QueryPerformanceCounter
từ mmsystem.h
để tạo bộ hẹn giờ có độ phân giải cao. Có điều gì đó tương tự cho Linux không?Hẹn giờ có độ phân giải cao với C++ và Linux?
Trả lời
Đã là asked before here - nhưng về cơ bản, có chức năng tăng thời gian bạn có thể sử dụng hoặc chức năng clockIX clock_gettime() có thể phục vụ về cơ bản cùng một mục đích.
Bạn chưa' Tôi biết rằng Boost cung cấp chức năng hẹn giờ. Cảm ơn bạn :) – okoman
Hoặc sử dụng [HighResTimer] (http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__High__Res__Timer.html) từ [ACE] (http: //www.cs.wustl. edu/~ schmidt/ACE.html) thư viện. – lothar
@lothar: +1 cho con trỏ tới thư viện ACE, cảm ơn. Liên kết bạn đưa ra đã cũ, đây là một liên kết mới: http://www.dre.vanderbilt.edu/Doxygen/Stable/libace-doc/a00227.html –
Tôi không có gì nhưng liên kết này: http://www.mjmwired.net/kernel/Documentation/rtc.txt
Tôi khá chắc chắn RTC là những gì bạn đang tìm kiếm mặc dù.
EDIT
câu trả lời khác dường như cầm tay hơn tôi.
Đối với Linux (và BSD) bạn muốn sử dụng clock_gettime().
#include <sys/time.h>
int main()
{
timespec ts;
// clock_gettime(CLOCK_MONOTONIC, &ts); // Works on FreeBSD
clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux
}
Xem: This answer để biết thêm thông tin
clock_gettime (CLOCK_MONOTONIC, &ts); cũng hoạt động trong Linux. – Maister
Tất nhiên , bạn cần phải nhận thức được sự khác biệt giữa 'CLOCK_MONOTONIC' và' CLOCK_REALTIME' - trước đây đã thiết lập điểm zero của nó thành một cái gì đó tùy ý khi khởi động hệ thống, và như vậy chỉ hữu ích cho việc so sánh tương đối giữa hai phép đo 'CLOCK_MONOTONIC' (nhưng không bị ảnh hưởng bởi điều chỉnh xung quanh) – bdonlan
Dưới đây là một liên kết mô tả làm thế nào để làm thời gian có độ phân giải cao trên Linux và Windows ... và không, KHÔNG sử dụng RTSC.
http://tdistler.com/2010/06/27/high-performance-timing-on-linux-windows
Đối với tiền của tôi, không có dễ dàng sử dụng cross-platform timer hơn lớp QTime Qt của.
Với C++ 11, hãy sử dụng std::chrono::high_resolution_clock
.
Ví dụ:
#include <iostream>
#include <chrono>
typedef std::chrono::high_resolution_clock Clock;
int main()
{
auto t1 = Clock::now();
auto t2 = Clock::now();
std::cout << "Delta t2-t1: "
<< std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count()
<< " nanoseconds" << std::endl;
}
Output:
Delta t2-t1: 131 nanoseconds
- 1. Hẹn giờ có độ phân giải cao cho iPhone?
- 2. Cách tạo bộ hẹn giờ có độ phân giải cao trong Linux để đo lường hiệu suất chương trình?
- 3. Làm cách nào để sử dụng CreateTimerQueueTimer để tạo bộ hẹn giờ có độ phân giải cao trong C#?
- 4. cách đặt độ phân giải hẹn giờ từ C# thành 1 ms?
- 5. Hệ thống con nhân của bộ nhân Linux: Độ chính xác và độ phân giải
- 6. Tại sao bộ hẹn giờ .NET giới hạn ở độ phân giải 15 ms?
- 7. Bộ đếm hiệu ứng độ phân giải cao là gì?
- 8. Tạo các hình có độ phân giải cao trong R
- 9. API thời gian thực/API có độ phân giải cao?
- 10. Độ phân giải phụ thuộc trong Linux
- 11. Xử lý hình ảnh có độ phân giải cao Android
- 12. giờ trong linux trong c
- 13. Android - Kiểm soát tác vụ với Bộ hẹn giờ và Bộ hẹn giờ?
- 14. Bộ hẹn giờ và javafx
- 15. Powershell hẹn giờ/độ chính xác đồng hồ bấm giờ
- 16. Bộ hẹn giờ có độ chính xác tốt hơn so với giấc ngủ()
- 17. Bộ hẹn giờ nhanh, đa nền tảng?
- 18. C# 5 và bộ hẹn giờ không đồng bộ
- 19. Khởi tạo hẹn giờ và điều kiện Race trong C#?
- 20. C# hẹn giờ sẽ không đánh dấu
- 21. Ghi và lưu trữ bản vẽ có độ phân giải cao
- 22. Dịch vụ Windows với bộ hẹn giờ
- 23. hẹn giờ thư viện trong C
- 24. Sử dụng Bộ hẹn giờ trong C#
- 25. Độ phân giải quá tải C#?
- 26. Độ chính xác hẹn giờ OpenVMS, tốt hơn độ chính xác mili giây.
- 27. Cách xem ở độ phân giải cao trong xcode4
- 28. Độ phân giải thư viện với autoconf?
- 29. Cần gì để có độ bền cao trên Linux?
- 30. độ phân giải thông số ngầm với nhiều loại kinded cao
http://stackoverflow.com/a/5524138/183120 (Cross-nền tảng C++ 11 tiêu chuẩn độ phân giải cao timer) – legends2k