2007年5月30日星期三

Untitled

C++中计算程序的运行时间 - 馒头の窝 - IT博客网  Annotated


个程序的功能通常有很多种方法来实现,怎么样的程序才算得上最优呢?举个例子,如果实现同一个功能的两个程序,一个一点按钮就给出运行结果,而另一个则需要漫长的时间去等待,就像安装WINDOWS XP一样(呵呵,太夸张了吧),你会去使用哪个程序呢?毋庸置疑,最优程序的第一条法则就是:程序的运行速度要快。



那么,既然一个程序能用多种方法来实现,我又如何知道哪种方法是最优的呢?有些程序是显而易见的,你把它运行一下,一个程序要3秒,一个要1秒,你当然能感觉出来。如果都在一秒之内呢,你又可以看申请的内存空间的多少,运算的数据大小,运算过程的简单复杂,有时也能分辨出哪个程序最好,可是有的时候,却不是那么容易看出来,比如它比另一个程序少定义一个变量,可是它又比那另一个程序多用几个除法,那么你就如何比较它们的运行速度呢?办法只有一个——计时!



C++中的计时函数是clock(),而与其相关的数据类型是clock_t(头文件是time.h)。函数定义原型为:clock_t clock(void);



这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数在MSDN中称之为挂钟时间(wal-clock)



其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:

   #ifndef _CLOCK_T_DEFINED

   typedef long clock_t;

   #define _CLOCK_T_DEFINED

   #endif

  很明显,clock_t是一个长整形数。另外在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,因此,我们就可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间。



下面就上面的知识给大家举个例子帮助大家理解。



#include

#include

void main()

{

   clock_t start,finish;

   double totaltime;

   start=clock();



   ……                     //把你的程序代码插入到这里面



   finish=clock();

   totaltime=(double)(finish-start)/CLOCKS_PER_SEC;

   cout<<"\n此程序的运行时间为"<<<"秒!"<

新博第一篇

微软MSN博客申请使用全功略  >>三湘时空-IT知识库[www.sxsky.net]  Annotated


在上周五(12月3日)微软推出了MSN博客测试服务,这是微软继推出MSN及Hotmail一对一的交流工具后,推出的第一款一对多的交流工具,通过MSN博客,我们可以实现图片、相册、音乐与大家一起共享,同时MSN博客对所有用户都是免费的,每个用户可以免费拥有10M的空间自由使用。另外还可以使用移动设备通过发送电子邮件的方式来自动更新blog,以及可以设置对用户开放及发表评论的权限

新博第一篇

坚持下去啊