C++程序运行时间测定
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++程序运行时间测定的更多相关文章
- 检测Java程序运行时间的2种方法(高精度的时间[纳秒]与低精度的时间[毫秒])
第一种是以毫秒为单位计算的. 代码如下: long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 lon ...
- PAT乙级 1026. 程序运行时间(15)
1026. 程序运行时间(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 要获得一个C语言程序的运行时间, ...
- VC中监测程序运行时间(二)-毫秒级
/* * 微秒级计时器,用来统计程序运行时间 * http://blog.csdn.net/hoya5121/article/details/3778487#comments * //整理 [10/1 ...
- PAT-乙级-1026. 程序运行时间(15)
1026. 程序运行时间(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 要获得一个C语言程序的运行时间, ...
- C#测量程序运行时间及cpu使用时间
转载:http://www.cnblogs.com/yanpeng/archive/2008/10/15/1943369.html 对一个服务器程序想统计每秒可以处理多少数据包,要如何做?答案是用处理 ...
- java中读取程序运行时间
第一种是以毫秒为单位计算的. Java代码 //伪代码 long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); // ...
- Java计算两个程序运行时间
一.获取系统当前时间 long startTime = System.currentTimeMillis(); //获取开始时间 doSomething(); //测试的代码段 long endTim ...
- 三种计算c#程序运行时间的方法
三种计算c#程序运行时间的方法 第一种: 利用 System.DateTime.Now // example1: System.DateTime.Now method DateTime dt1 = S ...
- 【转】c++ 获取程序运行时间
转自:http://blog.csdn.net/ghevinn/article/details/22800059 DWORD start_time=GetTickCount(); {...} DWOR ...
随机推荐
- Sprint会议2
昨天:准备查找安卓APP开发的有关资料,安装有关软件 今天:自己制作一个安卓小程序,熟悉一下操作 遇到问题:安装遇到问题,环境配置出现问题
- Spring笔记③--spring的命名空间
p:命名空间: xmlns:p="http://www.springframework.org/schema/p" 作用:简化在xml配置bean的属性 在<bean> ...
- “吃神么,买神么”的第一个Sprint计划(第七天)
“吃神么,买神么”项目Sprint计划 ——5.25 星期一(第五天)立会内容与进度 摘要: 所有的部件都完成,在贴每个人负责的部件时发现很多问题,很多网页布局的运用不熟练,一部分的div会跑位置~ ...
- awk4.0对数组value排序
有朋友问了一个问题,要求对下面这段文本进行处理: http://www.baidu.com/2.html http://www.baidu.com/2.html http://www.baidu.co ...
- 通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)
步骤: 1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft ...
- php aes加密
<?php namespace Aes; error_reporting(E_ALL); ini_set('display_errors', '1'); class Aes { /** * va ...
- 用友时空B/S表单外挂(接口)程序操作说明文档
用友时空B/S表单外挂(接口)程序 一.B/S表单接口需求 众所周知,用友时空KSOA支持B/S架构.且移动商务.在线门店,都是完全基于B/S架构的. B/S架构的优越性在于没有本地客户端和本地数据, ...
- Spring4+Spring MVC+MyBatis整合思路
1.Spring框架的搭建 这个很简单,只需要web容器中注册org.springframework.web.context.ContextLoaderListener,并指定spring加载配置文件 ...
- 【spring学习笔记一】Ioc控制反转
(最近有点捞,在大一的时候还通过写博客的方式督促自己学习唉,先培养起习惯,再找个好点的地方重新开始写博客⑧) Spring是JAVA的一个框架. 有个概念叫依赖注入(或者还有个名字叫控制反转). 概念 ...
- 注册系统所有的dll文件.bat
@echo off echo 运行后,能重新注册系统所有的dll文件, echo 能解决内存读写错误的问题 pause echo on for %%1 in (%windir%/system32/*. ...