Как я могу изменить точность в таймере в std :: chrono? Начинается со значения 1000 - PullRequest
0 голосов
/ 14 апреля 2020

Я сделал класс таймера, используя 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...