Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C+中添加计时器+;环 我发现了一些C++编写的简单PI计算程序。我对C++的了解不是很好(没有确切的),但是我如何实现一个计时器来告诉我程序计算π数需要多长时间?< /P>_C++ - Fatal编程技术网

在C+中添加计时器+;环 我发现了一些C++编写的简单PI计算程序。我对C++的了解不是很好(没有确切的),但是我如何实现一个计时器来告诉我程序计算π数需要多长时间?< /P>

在C+中添加计时器+;环 我发现了一些C++编写的简单PI计算程序。我对C++的了解不是很好(没有确切的),但是我如何实现一个计时器来告诉我程序计算π数需要多长时间?< /P>,c++,C++,例如:Pi计算在X秒、分钟或小时内完成。\include #include <cstdio> #include <ctime> using namespace std; int main() { clock_t start = clock(); /* Code you want timed here */ printf("Time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC);

例如:Pi计算在X秒、分钟或小时内完成。

\include
#include <cstdio>
#include <ctime>
using namespace std;

int main()
{
   clock_t start = clock();
   /* Code you want timed here */
   printf("Time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC);
}
#包括 使用名称空间std; int main() { 时钟启动=时钟(); /*你想在这里计时的代码*/ printf(“经过的时间:%f\n”,((双)时钟()-开始)/每秒时钟数); }
#包括
#包括
使用名称空间std;
int main()
{
时钟启动=时钟();
/*你想在这里计时的代码*/
printf(“经过的时间:%f\n”,((双)时钟()-开始)/每秒时钟数);
}
#包括
C类基准
{
公众:
CBenchmark(void)throw():
m_开始时间(0),m_结束时间(0)
{}
无效开始(无效)抛出()
{
m_startTime=getTime();
返回;
}
无效停止(无效)抛出()
{
m_finalTime=getTime();
返回;
}
大小\u t延迟时间(无效)投掷()
{
返回m_finalTime-m_startTime;
}
受保护的:
大小\u t getTime(void)throw()
{
timeval-tp;
gettimeofday(&tp,NULL);
返回tp.tv_sec*1e6+tp.tv_usec;
}
开始时间的大小;
财政时间;
};
#包括
C类基准
{
公众:
CBenchmark(void)throw():
m_开始时间(0),m_结束时间(0)
{}
无效开始(无效)抛出()
{
m_startTime=getTime();
返回;
}
无效停止(无效)抛出()
{
m_finalTime=getTime();
返回;
}
大小\u t延迟时间(无效)投掷()
{
返回m_finalTime-m_startTime;
}
受保护的:
大小\u t getTime(void)throw()
{
timeval-tp;
gettimeofday(&tp,NULL);
返回tp.tv_sec*1e6+tp.tv_usec;
}
开始时间的大小;
财政时间;
};

这在很大程度上取决于您的开发平台。你在Windows上吗?POSIX系统?您是否使用像Qt这样的框架?如果您使用linux,您可以使用
time
程序<代码>时间程序\u名称将显示程序执行所需的时间。如果您的算法很快完成*最好在循环中运行多次(数千次),然后计算平均值以获得更精确的测量值。如果您使用的是类unix系统,请尝试
/usr/bin/time您的\u应用程序
,可能非常有用。不要在shell中使用
时间
,因为它们很糟糕。这在很大程度上取决于您的开发平台。你在Windows上吗?POSIX系统?您是否使用像Qt这样的框架?如果您使用linux,您可以使用
time
程序<代码>时间程序\u名称将显示程序执行所需的时间。如果您的算法很快完成*最好在循环中运行多次(数千次),然后计算平均值以获得更精确的测量值。如果您使用的是类unix系统,请尝试
/usr/bin/time您的\u应用程序
,可能非常有用。不要在shell中使用时间,因为它们很糟糕。+1,尽管我更愿意使用时间和代码,或者更好,否则,这是一个纯粹的C回答,或者这个片段在函数范围内,所以这里使用include很奇怪,或者它在全局范围内,表达式不在有效位置。在 int()/<代码>中编辑代码,包括C++头,使用命名空间STD < /Cord>(与更具侵入性的替代品)一起执行邪恶<代码>,以将时间材料纳入范围;希望您不介意,因为这些更改对您在回答中所提出的问题并不重要。+1,尽管我更愿意使用
或更好的
,否则,这是一个纯粹的C答案是的,或者这段代码在函数范围内,因此这里使用
\include
很奇怪,或者它在全局范围内,表达式不在有效位置。在 int()/<代码>中编辑代码,包括C++头,使用命名空间STD < /Cord>(与更具侵入性的替代品)一起执行邪恶<代码>,以将时间材料纳入范围;希望您不介意,因为这些更改对您在回答中的要点并不重要。OP在哪里指定了类似POSIX的系统?OP在哪里指定了类似POSIX的系统?
#include <sys/time.h>
class CBenchmark
{
    public:
        CBenchmark(void) throw() :
            m_startTime(0),m_finalTime(0)
    {}

        void start(void) throw()
        {
            m_startTime=getTime();
            return;
        }

        void stop(void) throw()
        {
            m_finalTime=getTime();
            return;
        }

        size_t elapsedTime(void) throw()
        {
            return m_finalTime-m_startTime;
        }
    protected:
        size_t getTime(void) throw()
        {
            timeval tp;
            gettimeofday(&tp,NULL);
            return tp.tv_sec*1e6+tp.tv_usec;
        }

        size_t m_startTime;
        size_t m_finalTime;
};