codeblocks中对代码的三种测试时间方法

嘻……这几天周赛啥的卡时间太紧,别的队友优化常数太屌,所以只能学习下这个代码测试时间的方法了,上网找了两种方法,然后再加上队友的方法,三种都搬上来了。

第一种:

#include<time.h>
int main()
{
    clock_t startTime=clock();
    {
        //这里是我们要测试的代码;
    }
    clock_t endTime=clock();
    cout<<"运行时间为::"<<endTime-startTime<<"ms"<<endl;
}

第二种:

#include<windows.h>
int main()
{
    DWORD startTime=GetTickCount();
    {
        //这里是我们要测试的代码;
    }
    DWORD endTime=GetTickCount();
    cout<<"运行时间为::"<<endTime-startTime<<"ms"<<endl;
}

第三种:

队友给力的文件测试方法,非常适合文件数据的测试。

在安装的codeblocks文件夹中,有一个名为:cb_console_runner 的应用程序,如下图:

把它拷到你的程序的同一路径中,比如我的代码程序是放在桌面的,然后我把这个cb_console_runner也放到桌面上。比如你的程序是A.cpp,数据放在1.txt中,现在我想把显示的时间输入在2.txt中,操作:你先用codeblocks运行你的程序得到A.exe应用程序,然后在桌面上按住shitf键不放然后点击鼠标右键,选择:在此处打开命令窗口 选项,然后输入:cb_console_runner A.exe <1.txt >2.txt,再连续按两次回车键即可。然后可以打开2.txt看看你程序的运行时间了。

cb_console_runner A.exe <1.txt >2.txt,这句话的意思应该是打开A.exe,然后从1.txt中读取数据运行,然后把结果和运行时间输入到2.txt中吧。

三种测试时间的比较:

第一第二种差不多,因为直接在main函数中测试,所以可能会比第三种时间快点吧。如果是用手输入数据在运行窗口中的话,那程序的运行时间就更加多了,因为第一第二种是最后程序的结束时间减去开始时间的,所以会慢。

如果都是用文件读取数据的话,这三种时间应该是差不多的。

时间: 2024-12-22 16:40:09

codeblocks中对代码的三种测试时间方法的相关文章

Electron与jQuery中$符号冲突的三种解决方法

在Electron工程中引用jQuery时,经常会出现以下错误: Uncaught ReferenceError: $ is not defined 解决的具体方法如下: ①.在测试的过程中(测试过1.10.1,以及当前最新的3.2.1版本都不行),发现只要使用2.03版本的jQuery或者2.2.0版本的jQuery,就不会出现$未定义的情况. ②.使用jQuery原有的关键字jQuery()来替代$(),或者自定义关键字. <script type="text/javascript&q

YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把查询结果的 HTML 代码呈现到 Razor 视图中,考虑到灵活性,需要能在任意 Razor 视图中调用该方法,这样任意 Razor 页面都能以统一的方式方便地共享该页面部件的 HTML 内容,这对于代码的重用性和可维护性都是非常有必要的. 为实现上述要求,本文介绍如下可供选择的三种方式.   1.

android开发中监听器的三种实现方法(OnClickListener)

Android开发中监听器的实现有三种方法,对于初学者来说,能够很好地理解这三种方法,将能更好地增进自己对android中监听器的理解. 一.什么是监听器. 监听器是一个存在于View类下的接口,一般以On******Llistener命名,实现该接口需要复写相应的on****(View v)方法(如onClick(View v)). 二.监听器的三种实现方法 (以OnClickListener为例) 方法一:在Activity中定义一个内部类继承监听器接口(这里是OnClickListener

js oop中的三种继承方法

JS OOP 中的三种继承方法: 很多读者关于js opp的继承比较模糊,本文总结了oop中的三种继承方法,以助于读者进行区分. <继承使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方法.(继承的两方,发生在两个类之间)> 一.通过object实现继承 1:定义父类 function Parent(){} 2:定义子类 funtion Son(){} 3:通过原型给Object对象添加一个扩展方法. Object.prototype.customExtend = function(p

Android中常用的三种存储方法浅析

Android中常用的三种存储方法浅析 Android中数据存储有5种方式: [1]使用SharedPreferences存储数据 [2]文件存储数据 [3]SQLite数据库存储数据 [4]使用ContentProvider存储数据 [5]网络存储数据 在这里我只总结了三种我用到过的或即将可能用到的三种存储方法. 一.使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置信息比如窗口状态,它的本质是基

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法 当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下 当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空” 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内

Hibernate 入门 04 - Hibernate中Java对象的三种状态

目录:(后续不断更新...) Hibernate 入门 01 - 框架技术 (介绍Hibernate框架的发展由来) Hibernate 入门 02 - Hibernate介绍及其环境搭建 Hibernate 入门 03 - 使用Hibernate完成持久化操作 Hibernate 入门 04 - Hibernate中Java对象的三种状态 ▁▃▅ Hibernate中Java对象的三种状态▅▃▁ 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久

javascript中定义事件的三种方式

在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使用addEvenListener()方法 三种方法的比较 (1)在第二.三种方法中,可以向函数传入一个event对象,并读取其相应属性,而方法一不可以. (2)首选第二.三种,第一种不利于将内容与事件分离,也不能使用event对象的相关内容. 一些语法细节 (1)在第一种方法中,onclick大小写

spring在xml文件中配置bean的三种方法

一.最常见,也是缺省,是调用spring的缺省工厂类 spring缺省工厂类:org.springframework.beans.factory.support.DefaultListableBeanFactory使用其静态方法preInstantiateSingletons() 配置文件中最普通最基本的定义一个普通bean<bean id="DvdTypeDAOBean" class="com.machome.dvd.impl.DvdTypeDAO" >