tiempo medir ejecucion c++ c++11 time chrono

c++ - medir - Chrono-¿La diferencia entre dos puntos en el tiempo en milisegundos?



medir tiempo c# (3)

http://www.cplusplus.com/reference/chrono/duration_cast/

std::chrono::duration_cast<std::chrono::milliseconds>();

¿Cómo puedo obtener (usando la biblioteca std :: chrono) la diferencia entre dos puntos en el tiempo en milisegundos?

Podría hacerlo usando esto:

std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now(); std::chrono::time_point<std::chrono::system_clock> foo = now + std::chrono::milliseconds(100); std::chrono::duration<float> difference = foo - now; const int milliseconds = difference.count() * 1000;

¿Cómo puedo obtener este tiempo en milisegundos, por lo que puedo usar la duración como un int sin signo, y no un float y luego multiplicar por 1000?


chrono::duration_cast<chrono::milliseconds>(end_time - start_time).count()


std::chrono::duration tiene dos parámetros de plantilla, el segundo es exactamente la unidad de medida. Puede invocar std::chrono::duration_cast para convertir de un tipo de duración a otro. Además, hay un tipo de duración predefinido para milisegundos: std::chrono::milliseconds . Componiendo esto juntos:

auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(foo - now);

Para generar la cantidad real de milisegundos, use duration::count :

auto ms = milliseconds.count();

Su tipo de devolución es duration::rep , que para tipos de duración estándar como std::chrono::milliseconds es un entero con signo de tamaño no especificado.