如何准确的统计自己程序的运行时间

原创 2007年09月23日 11:46:00
 

HTML Tags and JavaScript tutorial



如何准确的统计自己程序的运行时间



能删除自己写的文章呢???
由于网络问题,重发了,我晕










 | 
下一篇: 如何准确的统计自己程序的运行时间

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}


 如何准确的统计自己程序的运行时间



如何准确的统计自己程序的运行时间?也许你马上会回答使用C语言集中的clock()函数。不过如果你的程序可能要运行很久,clock()还行吗?答案是否定的。因为clock()内部使用的是clock_t (long类型),在Windows下它所能表示的时间是大约三万五千分钟,不过在unix下最多只能计时35分钟。查看了一下boost提供的timer代码,里面也有这个限制,:(。
大家知道clock()计算的是cpu使用时间,而time()计算的是wall clock time。理论上使用clock要比time要更加准确,特别是有多个进程在多线程调度下。不过在需要对运行超长时间的程序来说,time()看来是比较有效的方法了。
#include <sys/times.h>
#include <unistd.h>
double getRunTime(){ 
 struct tms current; 
 times(&current);   
 double norm = (double)sysconf(_SC_CLK_TCK); 
 return(((double)current.tms_utime)/norm);
}
int main(){ 
 double startTime = getRunTime();       
 /* do some job here */ 
 double endTime = getRunTime(); 
 
 printf("CPU Time = %f second/n", (endTime - startTime) ); 
 return 0;
}
大家有什么建议吗?


相关文章推荐

oracle中准确控制job的下次运行时间(next date)

用过ORACLE的JOB的朋友也许都能够感觉到它的强大,和JAVA中的quartz有异曲同工之妙,可以少了很多的重复劳动;但是也会有许多问题,就是执行时间段和执行时间比较不容易确定。这其实都是我们还不...

CCS3.3的使用2___统计程序运行的时间

第一步:在菜单中选择profile->Clock,勾选Enable(使能统计时钟) View(使能计数器显示),如下图1所示   图1 第二步:设置断点 假如要统计下图中for循环的时间,...

CCS上程序运行时间统计方法最终报告

我在前一段时间写的博文《CCS3.3 利用profile对程序的运行时间进行统计》只是写了用CCS3.3上的profile进行时间剖析的不爽之处,得出profile不准确的结论,看到有同学转载俺的博文...

基因数据处理17之使用scala对BWA运行结果进行各阶段程序时间提取和统计求和

提取代码: package test import scala.io.Source import java.io.File._ import java.io.PrintWriter object...

CCS上程序运行时间统计方法最终报告

转载自:http://blog.sina.com.cn/s/blog_4c270c730100mkh1.html  我在前一段时间写的博文《CCS3.3 利用profile对程序的运行时间进行统...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何准确的统计自己程序的运行时间
举报原因:
原因补充:

(最多只允许输入30个字)