En Windows hay algunas funciones prácticas como QueryPerformanceCounter
de mmsystem.h
para crear un temporizador de alta resolución. ¿Hay algo similar para Linux?Temporizador de alta resolución con C++ y Linux?
Respuesta
Ha sido asked before here - pero, básicamente, hay una función boost ptime que puede usar, o una función POSIX clock_gettime() que puede servir básicamente para el mismo propósito.
Didn' Sé que Boost brinda funcionalidad de temporizador. Gracias :) – okoman
O use el [HighResTimer] (http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/classACE__High__Res__Timer.html) de [ACE] (http: //www.cs.wustl. edu/~ schmidt/ACE.html) biblioteca. – lothar
@lothar: +1 para el puntero a la biblioteca ACE, gracias. El enlace que proporcionó fue obsoleto, aquí hay uno nuevo: http://www.dre.vanderbilt.edu/Doxygen/Stable/libace-doc/a00227.html –
tengo nada más que este enlace: http://www.mjmwired.net/kernel/Documentation/rtc.txt
Estoy bastante seguro de RTC es lo que busca sin embargo.
EDITAR
Otras respuestas parecen más fáciles de transportar que la mía.
Para Linux (y BSD) desea usar 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
}
Ver: This answer para más información
clock_gettime (CLOCK_MONOTONIC, &ts); también funciona en Linux. – Maister
Por supuesto , debe tener en cuenta la diferencia entre 'CLOCK_MONOTONIC' y' CLOCK_REALTIME' - el primero tiene su punto cero configurado en algo arbitrario al inicio del sistema, y como tal solo es útil para comparaciones relativas entre dos mediciones 'CLOCK_MONOTONIC' (pero no se ve afectado por los ajustes de reloj de pared) – bdonlan
Aquí hay un enlace que describe cómo hacer de alta resolución de tiempo en Linux y Windows ... y no, NO utilice RTSC.
http://tdistler.com/2010/06/27/high-performance-timing-on-linux-windows
Para mi dinero, no es temporizador multiplataforma sin más fácil de usar que la clase de Qt QTime.
Con C++ 11, use std::chrono::high_resolution_clock
.
Ejemplo:
#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;
}
de salida:
Delta t2-t1: 131 nanoseconds
- 1. Temporizador de alta resolución en .NET
- 2. Suceso de elevación en intervalo/temporizador de alta resolución
- 3. ¿Cómo crear un temporizador de alta resolución en Linux para medir el rendimiento del programa?
- 4. ¿Cómo puedo usar CreateTimerQueueTimer para crear un temporizador de alta resolución en C#?
- 5. gravatar resolución más alta
- 6. Dibuja animaciones de alta resolución con alta velocidad de cuadro en Android
- 7. Imagen de alta resolución IE Navegador Rendering
- 8. Buscando GameCenter de alta resolución Icon
- 9. Grabación y almacenamiento de dibujos a mano de alta resolución
- 10. Procesamiento de imágenes de alta resolución Android
- 11. Imágenes de alta resolución en uiwebview
- 12. temporizador de resolución de 1 ms bajo la forma recomendada de linux
- 13. ¿Cuál es la forma correcta de manejar imágenes de alta resolución para pantallas de alta resolución (principalmente pantallas retina iOS)?
- 14. Cambiar el temporizador del núcleo de Linux
- 15. Subsistemas de temporizadores de kernel de Linux: precisión frente a resolución
- 16. Explicación sobre el contador de rendimiento de alta resolución y su existencia relacionada con .NET Stopwatch?
- 17. Extracto Icono o miniatura de alta resolución para el archivo
- 18. Carpetas desechables para dispositivos de mano de alta resolución
- 19. Icono de alta resolución para archivo en Mac OS X?
- 20. Solo dispositivos de alta resolución (píxeles) en Android Market
- 21. Dónde puedo encontrar datos financieros de alta resolución
- 22. ¿Cómo se toman imágenes de alta resolución usando Camera.takePicture()?
- 23. CUDA: ¿diferencia entre el temporizador de la CPU y el evento del temporizador CUDA?
- 24. Retrollamada del temporizador en C++
- 25. Ahorro de trama para tiff, con alta resolución para su publicación (en I)
- 26. Cómo ver una resolución tan alta en xcode4
- 27. WPF temporizador Al igual que C# temporizador
- 28. CSS para imágenes de alta resolución en pantallas móviles y retina
- 29. ¿Coordenadas de mouse de alta resolución y alto framerate en OSX? (¿O alguna otra solución?)
- 30. C# Alta precisión doble
http://stackoverflow.com/a/5524138/183120 (Cross-plataforma C++ 11 temporizador estándar de alta resolución) – legends2k