From:http://www.cnblogs.com/killerlegend/p/3877703.html

Author:KillerLegend

Date:2014.7.30

此处程序的测试时间精确到毫秒级别,第一种方式是在程序中测定,第二种是编写一个专门用于测试程序运行时间的命令行程序.下面分别介绍:

程序中测定

主要用到的头文件有time.h,主要使用的是其中的一个clock函数,例程如下:

 #include <iostream>

 #include <time.h>

 usingnamespace std;

 int main()

 {

     clock_t start = clock();

     // Place your codes here...

     clock_t ends = clock();

     cout <<"Running Time : "<<(double)(ends - start)/ CLOCKS_PER_SEC << endl;

     return0;

 }

程序很简单,输出的结果秒数,如果将结果乘以1000则输出的为毫秒数.

命令行程序测定

首先说一下命令行参数,完整的main函数声明如下:

 int main (int argc,char*argv[])

其中第一个参数argc代表argument count,也就是参数的个数,应用程序本身也算一个参数,第二个参数argv表示一系列字符串,分别对应于第一个,第二个...参数.第一个参数argv[0]是程序本身的名字,argv[argc]是一个空指针.现在我们就可以自己编写一个简单的计时器程序了,程序如下,名字就叫做timer.cpp:

 #include <iostream>

 #include <stdlib.h>

 #include <time.h>

 usingnamespace std;

 int main(int argc,char** argv)//char** argv<==>char* agrv[]

 {

     if(argc!=)

     {

         cout<<"Usage:timer program_examed_name"<<endl;

         return1;

     }

     cout<<"Beginning test..."<<endl;

     clock_t begin = clock();

     system(argv[]);

     clock_t end = clock();

     cout<<"Running time: "<<(double)(end-begin)/CLOCKS_PER_SEC*<<"ms"<<endl;

 }

其中的if语句用于判断参数的个数,如果不对,则中断程序.用到的system包含于stdlib.h头文件横纵,因此不要忘记包含这个文件.此命令用于执行我们编译好的程序.下面来具体说一下步骤:

1:首先将timer.cpp编译,生成一个timer.exe可执行程序.

2:我们的程序,假设为main.cpp,如果我们要从外界读取数据并且输出数据,我们需要使用freopen函数(包含在stdio.h中)来让程序执行的时候自动读取输出,看起来就像这样子:

 #include <cstdio>

 //...other headers

 int main()

 {

     freopen("data.in","r",stdin);

     freopen("data.out","w",stdout);

     //your code...

     return0;

 }

其中,data.in和data.out自己随便起名都可以,保证和原程序在同一个目录下就行.

编译程序完成后, 生成一个main.exe程序,然后将所需要的数据放到data.in中,打开命令行,转到我们的程序所在的位置(包含有main.exe以及timer.exe),然后在命令行中输入:

 timer main

看起来就像下面这样:

时间是74ms.

你当然可以多测试几次,取一个平均值.

希望对你有用.

C++程序运行时间测定的更多相关文章

  1. 检测Java程序运行时间的2种方法(高精度的时间[纳秒]与低精度的时间[毫秒])

    第一种是以毫秒为单位计算的. 代码如下: long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 lon ...

  2. PAT乙级 1026. 程序运行时间(15)

    1026. 程序运行时间(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 要获得一个C语言程序的运行时间, ...

  3. VC中监测程序运行时间(二)-毫秒级

    /* * 微秒级计时器,用来统计程序运行时间 * http://blog.csdn.net/hoya5121/article/details/3778487#comments * //整理 [10/1 ...

  4. PAT-乙级-1026. 程序运行时间(15)

    1026. 程序运行时间(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 要获得一个C语言程序的运行时间, ...

  5. C#测量程序运行时间及cpu使用时间

    转载:http://www.cnblogs.com/yanpeng/archive/2008/10/15/1943369.html 对一个服务器程序想统计每秒可以处理多少数据包,要如何做?答案是用处理 ...

  6. java中读取程序运行时间

    第一种是以毫秒为单位计算的. Java代码 //伪代码 long startTime=System.currentTimeMillis();   //获取开始时间 doSomeThing();  // ...

  7. Java计算两个程序运行时间

    一.获取系统当前时间 long startTime = System.currentTimeMillis(); //获取开始时间 doSomething(); //测试的代码段 long endTim ...

  8. 三种计算c#程序运行时间的方法

    三种计算c#程序运行时间的方法 第一种: 利用 System.DateTime.Now // example1: System.DateTime.Now method DateTime dt1 = S ...

  9. 【转】c++ 获取程序运行时间

    转自:http://blog.csdn.net/ghevinn/article/details/22800059 DWORD start_time=GetTickCount(); {...} DWOR ...

随机推荐

  1. 【转】 MATLAB下如何指定GPU资源

    [转] MATLAB下如何指定GPU资源 原文链接

  2. 第一次spring冲刺第6天

    鉴于昨天的调查,今天做了个谈论,主要针对以下几个问题 1.我们的客户类型? 2.如何实现他们的需求? 3.他们真正想要什么? 4.如何保证他们的满足度? 5.怎么使得工程不陷入死循环? 6.还存在什么 ...

  3. DocX插件

    DocX是一个用C#编写的.NET库,它允许开发人员以简单直观的方式操作Word文件.

  4. 关于Eclipse上使用可视化设计界面(Java EE 使用可视化界面设计)

    Eclipse下可视化界面实现——WindowBulider安装 第一步: WindowBuilder官方下载安装说明地址:http://www.eclipse.org/windowbuilder/d ...

  5. angularJS1笔记-(19)-angular异步加载包的方式

    我们平时写的导入包的方式都是同步方式,有时候会显得过于卡顿,这样我们就可以使用异步加载的方式. script.js方式: 执行结果为: 异步加载还可以加载多个即为script([,,,],functi ...

  6. mac下搭建MySql环境基本步骤

    准备工作做完后,开始: 创建数据库 step1: 在mac中->系统偏好设置->最下边点MySQL 在弹出页面中 关闭mysql服务(点击stop mysql server) step2: ...

  7. Linux操作系统(一)

    操作系统:介于硬件与用户之间的一组程序,方便用户操作,用以管理计算机的所有活动及硬件资源. 1.硬件->内核->系统调用(shell.命令)->应用程序. 只要具备以下几点,即可称为 ...

  8. TCP源码—epoll源码及测试

    一.epoll_create & epoll_create1 SYSCALL_DEFINE1(epoll_create, int, size) sys_epoll_create->sys ...

  9. 6/9 sprint2 看板和燃尽图的更新

  10. JS 字符串切割成数组

    var cheLin = "字*符*串" // console.log(cheLin) var array = cheLin.split("*");  arra ...