W Windowsie jest kilka przydatnych funkcji, takich jak QueryPerformanceCounter
z mmsystem.h
, aby utworzyć zegar o wysokiej rozdzielczości. Czy jest coś podobnego w Linuksie?Zegar wysokiej rozdzielczości z C++ i Linux?
Odpowiedz
To była asked before here - ale w zasadzie jest dostępna funkcja doładowania ptime, lub funkcja POSIX clock_gettime(), która może służyć w zasadzie do tego samego celu.
wstałem t wiedzą, że Boost zapewnia funkcjonalność timera. Dziękuję :) – okoman
Lub użyj [HighResTimer] (http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__High__Res__Timer.html) z [ACE] (http: //www.cs.wustl. edu/~ schmidt/ACE.html). – lothar
@lothar: +1 dla wskaźnika do biblioteki ACE, dziękuję. Link, który podałeś, był nieaktualny, oto nowy: http://www.dre.vanderbilt.edu/Doxygen/Stable/libace-doc/a00227.html –
mam nic prócz tego linku: http://www.mjmwired.net/kernel/Documentation/rtc.txt
jestem całkiem pewny RTC jest to, czego szukasz chociaż.
EDIT
Inne odpowiedzi wydają się bardziej mobilny niż moje.
Dla systemu Linux (i BSD), który chcesz użyć 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
}
Patrz: This answer więcej informacji
clock_gettime (CLOCK_MONOTONIC, &ts); działa również w Linuksie – Maister
Oczywiście , musisz zdawać sobie sprawę z różnicy między 'CLOCK_MONOTONIC' i' CLOCK_REALTIME' - pierwsza z nich ma ustawiony punkt zerowy na coś arbitralnego przy starcie systemu, i jako taka jest przydatna tylko do względnych porównań między dwoma pomiarami "CLOCK_MONOTONIC" (ale nie ma wpływu na regulacje ścienne) – bdonlan
Oto link opisujący jak zrobić wysokiej rozdzielczości taktowania w systemach Linux i Windows ... i nie, nie używać RTSC.
http://tdistler.com/2010/06/27/high-performance-timing-on-linux-windows
Za moje pieniądze, nie ma łatwiejszy w obsłudze zegar wieloplatformowy niż QTime klasy Qt.
W C++ 11 użyj std::chrono::high_resolution_clock
.
przykład:
#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;
}
wyjściowa:
Delta t2-t1: 131 nanoseconds
- 1. Zegar o wysokiej rozdzielczości dla iPhone'a?
- 2. Czasomierz ObjC/C/C++ o wysokiej rozdzielczości z oddzwonieniem
- 3. Jak utworzyć zegar o wysokiej rozdzielczości w systemie Linux, aby mierzyć wydajność programu?
- 4. C# obrazy w wysokiej rozdzielczości w PDF
- 5. Znaczniki czcionek o wysokiej rozdzielczości
- 6. Obrazowanie w wysokiej rozdzielczości z Androidem
- 7. Jak uzyskać zegar o wysokiej rozdzielczości w natywnym kodzie systemu Android?
- 8. Timer o wysokiej rozdzielczości w .NET
- 9. Wyświetlacze Retina, obrazy tła o wysokiej rozdzielczości
- 10. Obraz w wysokiej rozdzielczości IE Browser Rendering
- 11. setVideoSize() ulega awarii w wysokiej rozdzielczości
- 12. Interfejs API w czasie rzeczywistym/wysokiej rozdzielczości?
- 13. Przechwytuj wideo/obraz wysokiej rozdzielczości html5
- 14. Responsive Web Design i wysokiej rozdzielczości wyświetla iPhone (4/5)
- 15. Jak korzystać z WinMerge z ustawieniem Windows o wysokiej rozdzielczości?
- 16. Współrzędne myszy wysokiej rozdzielczości i wysokiej szybkości klatek na sekundę w systemie OSX? (Lub inne rozwiązanie?)
- 17. Zdjęcie ekranu o wysokiej rozdzielczości w systemie Android:
- 18. Wysokiej rozdzielczości ikony UITabBar są wyświetlane w pełnym rozmiarze na ekranie o niskiej rozdzielczości
- 19. Jak dodać niestandardowy znacznik wysokiej rozdzielczości na statycznej mapie google
- 20. Automatyczne przeskalowanie aplikacji na platformie Windows o wysokiej rozdzielczości?
- 21. Jak załadować ikonę App Store na ekrany o wysokiej rozdzielczości?
- 22. Konwersja czasu zegara wysokiej rozdzielczości na liczbę całkowitą (Chrono)
- 23. Jak zrobić zdjęcia w wysokiej rozdzielczości za pomocą funkcji Camera.takePicture()?
- 24. Podsystemy czasowe jądra Linux: Dokładność a rozdzielczość
- 25. C# wysokiej precyzji obliczeń
- 26. Google Earth w ramach niestandardowej aplikacji C++ Linux
- 27. Wysokiej jakości biblioteki dla C++
- 28. Wykrywanie zmiany rozdzielczości C# WinForms
- 29. Set okna zegar w ASP.NET C#
- 30. Metody szybkiego ładowania obrazów, od niskiej do wysokiej rozdzielczości z wieloma środowiskami - rozwiązanie javascript?
http://stackoverflow.com/a/5524138/183120 (Cross platforma C++ 11 standardowych wysokiej rozdzielczości zegar) – legends2k