Как изменить файл.pro в проекте C++, чтобы напечатать время выполнения конкретного кода? Я использую Qt Creator в качестве общей C++ IDE в Ubuntu 13.04.
В терминале я бы использовал
time ./a.out
Мой текущий файл.pro
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
QMAKE_CXXFLAGS += -std=c++0x
Почему бы не попробовать QBENCHMARK? Как показано в приведенном ниже коде, вы можете вставить код, который вы хотите измерить, внутри макроса QBENCHMARK. Справка
class MyFirstBenchmark: public QObject
{
Q_OBJECT
private slots:
void myFirstBenchmark()
{
QString string1;
QString string2;
QBENCHMARK {
string1.localeAwareCompare(string2);
}
}
};
Расходуя предыдущие ответы, вот макрос, который делает все для вас.
#include <QDebug>
#include <QElapsedTimer>
#define CONCAT_(x,y) x##y
#define CONCAT(x,y) CONCAT_(x,y)
#define CHECKTIME(x) \
QElapsedTimer CONCAT(sb_, __LINE__); \
CONCAT(sb_, __LINE__).start(); \
x \
qDebug() << __FUNCTION__ << ":" << __LINE__ << " Elapsed time: " << CONCAT(sb_, __LINE__).elapsed() << " ms.";
И тогда вы можете просто использовать как:
CHECKTIME(
// any code
for (int i=0; i<1000; i++)
{
timeConsumingFunc();
}
)
В вашем случае, если вы хотите выполнить все время выполнения программы, вы можете просто включить в нее весь контент main. Нужно быть осторожным в цикле событий, я полагаю.
вывод:
onSpeedChanged: 102 Истекшее время: 2 мс.