c ++ / Qt - время вычислений - PullRequest
2 голосов
/ 30 марта 2012

Каков наилучший способ измерения времени вычислений с использованием STL C ++ или Qt?

Я знаю ctime, но у меня есть идея, что Qt может быть здесь полезен.

Спасибо!

Ответы [ 3 ]

5 голосов
/ 30 марта 2012

Есть класс QTime , который может измерять время, вы можете запустить его с помощью start() и получить его с помощью метода elapsed().

Если вы хотите что-то более продвинутое,Вы можете пойти на Boost.Chrono , если вы хотите получить серьезные временные извращения.Хотя он становится очень волосатым и очень быстрым, и документ немного скудный (как всегда с Boost), но это действительно одна из самых чистых и лучших библиотек, если вам нужно что-то такого калибра.

Все зависит отчто вы хотите сделать, потому что «измерение времени вычислений» - это очень широкое описание.Вы действительно хотите профиль ваше приложение?Тогда, возможно, вам подойдет инструмент профилирования.

Кроме того, если вы просто хотите получить необработанное время, необходимое для выполнения программы, в Linux есть команда time.

2 голосов
/ 30 марта 2012

Лично я бы использовал QElapsedTimer:

http://doc.qt.io/qt-4.8/qelapsedtimer.html

0 голосов
/ 30 марта 2012

Если вы разрабатываете для Windows , вы можете использовать это из WINAPI:

DWORD start = ::GetTickCount();

calculation();

DWORD result = ::GetTickCount - start;

DWORD result будет содержать прошедшее время в миллисекундах.

Примечание : что этот способ измерения не является сверхточным. Точность варьируется от 10 до 16 мс. Но если вы просто хотите отобразить что-то вроде «Потребовалось 5,37 секунды, чтобы рассчитать смысл жизни», этого будет достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...