在C+中添加计时器+;环 我发现了一些C++编写的简单PI计算程序。我对C++的了解不是很好(没有确切的),但是我如何实现一个计时器来告诉我程序计算π数需要多长时间?< /P>
例如:Pi计算在X秒、分钟或小时内完成。在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);
\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很奇怪,或者它在全局范围内,表达式不在有效位置。在
和
或更好的
,否则,这是一个纯粹的C答案是的,或者这段代码在函数范围内,因此这里使用\include
很奇怪,或者它在全局范围内,表达式不在有效位置。在#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;
};