Я сделал класс таймера, используя std :: chrono. Я хочу измерить время какого-то процесса в коде. Проблема в том, что этот процесс действительно быстрый (менее 1000 наносекунд), но таймер начинает считать значения с 1000. Если он меньше 1000, он меняется на 0. Тогда мой результат равен «0 наносекунд», и я хочу получить, например, «50 Нано секунд ». Есть ли решение для моей проблемы?
class Timer {
std::chrono::time_point<std::chrono::high_resolution_clock> start_time;
std::chrono::time_point<std::chrono::high_resolution_clock> stop_time;
public:
void start()
{
start_time = std::chrono::high_resolution_clock::now();
}
void stop()
{
stop_time = std::chrono::high_resolution_clock::now();
}
void print_time_duration()
{
std::cout<<"This Function took: "<<std::chrono::duration_cast<std::chrono::nanoseconds>(stop_time - start_time).count()<<" Nanoseconds."<<std::endl;
}
int return_time_duration()
{
return std::chrono::duration_cast<std::chrono::nanoseconds>(stop_time - start_time).count();
}
};
А потом ...
Timer time;
time.start();
// DO SOMETHING HERE
time.stop();
time.print_time_duration();