C++中Qt Creator的执行时间 我如何修改C++项目中的.pro文件来打印特定代码的执行时间?我使用Qt Creator作为Ubuntu 13.04中的一般C++ ID.

C++中Qt Creator的执行时间 我如何修改C++项目中的.pro文件来打印特定代码的执行时间?我使用Qt Creator作为Ubuntu 13.04中的一般C++ ID.,c++,qt-creator,C++,Qt Creator,在终端,我会使用 time ./a.out 我当前的.pro文件是 TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt SOURCES += main.cpp QMAKE_CXXFLAGS += -std=c++0x 为什么不试试QBENCHMARK呢?如下面的代码所示,您可以在QBENCHMARK宏中插入要测量的代码 为什么不试试QBENCHMARK呢?如下面的代码所示,您可以在QBENCHMARK宏中插

在终端,我会使用

time ./a.out
我当前的.pro文件是

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

QMAKE_CXXFLAGS += -std=c++0x

为什么不试试QBENCHMARK呢?如下面的代码所示,您可以在QBENCHMARK宏中插入要测量的代码


为什么不试试QBENCHMARK呢?如下面的代码所示,您可以在QBENCHMARK宏中插入要测量的代码


为什么不试试QBENCHMARK呢?如下面的代码所示,您可以在QBENCHMARK宏中插入要测量的代码


为什么不试试QBENCHMARK呢?如下面的代码所示,您可以在QBENCHMARK宏中插入要测量的代码


扩展前面的答案,这里有一个宏,可以为您做任何事情

#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毫秒


扩展前面的答案,这里有一个宏,可以为您做任何事情

#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毫秒


扩展前面的答案,这里有一个宏,可以为您做任何事情

#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毫秒


扩展前面的答案,这里有一个宏,可以为您做任何事情

#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毫秒



为什么你认为它应该在一个pro文件中完成?我认为pro文件是用来输入我们在编译代码时要执行的命令的。很抱歉。编译时,是的。但你的问题是关于执行时间。但是,现在我又读了一遍,我不知道你想测量什么时间。我用C++来设计项目Euler,想测量各种问题的执行时间。为什么你认为应该在PRO文件中完成?我认为PRO文件用来输入我们要在编译代码时执行的命令。很抱歉。编译时,是的。但你的问题是关于执行时间。但是,现在我又读了一遍,我不知道你想测量什么时间。我用C++来设计项目Euler,想测量各种问题的执行时间。为什么你认为应该在PRO文件中完成?我认为PRO文件用来输入我们要在编译代码时执行的命令。很抱歉。编译时,是的。但你的问题是关于执行时间。但是,现在我又读了一遍,我不知道你想测量什么时间。我用C++来设计项目Euler,想测量各种问题的执行时间。为什么你认为应该在PRO文件中完成?我认为PRO文件用来输入我们要在编译代码时执行的命令。很抱歉。编译时,是的。但你的问题是关于执行时间。然而,现在我又读了一遍,我不知道你想测量什么时间。我用C++来表示项目Euler,并且想测量各种问题的执行时间。我的问题实际上是在之前问过的,并且有几个关于相同问题的评论。不管怎样,谢谢你的回复。我的问题实际上是在之前被问到的,并且有一些关于同样的评论。不管怎样,谢谢你的回复。我的问题实际上是在之前被问到的,并且有一些关于同样的评论。不管怎样,谢谢你的回复。我的问题实际上是在之前被问到的,并且有一些关于同样的评论。谢谢你的回复。