fun2比fun3稍快点

运行环境:WinXP VS2005(VC8)

核心代码:

#include <iostream>

using namespace std ;

#include <time.h>

#define WAN (10000)

const int iNum = WAN*WAN*3;

void fun2(int* p)

{

for( int i = 0 ; i < iNum ; i+= 4  )

{

p[i] = i;

p[i+1] = i+1;

p[i+2] = i+2;

p[i+3] = i+3 ;

}

}

void fun3(int* p)

{

for( int i = 0 ; i < iNum ; i+= 8 )

{

p[i] = i;

p[i+1] = i+1;

p[i+2] = i+2;

p[i+3] = i+3 ;

p[i+4] = i+4 ;

p[i+5] = i+5 ;

p[i+6] = i+6 ;

p[i+7] = i+7 ;

}

}

测试程序一:

void main()

{

int * p = new int[iNum];

int x1 = time(NULL);

fun2(p);

int x2 = time(NULL);

fun3(p);

int x3 = time(NULL);

cout << (long)(x2-x1) << "秒 " << (long)(x3-x2) << "秒";

delete [] p ;

}

五次的运行结果:

4,3

3,3

3,3

4,2

3,3

测试程序三(fun3在前,fun2在后):

2,3

2,4

2,3

3,3

2,3

总的来说fun3 比fun2快,但平均不到1秒。

时间: 2024-07-28 12:56:43

fun2比fun3稍快点的相关文章

fun2比fun1稍快点

运行环境:WinXP VS2005(VC8) 核心代码: #include <iostream> using namespace std ; #include <time.h> #define WAN (10000) const int iNum = WAN*WAN*3; void fun1(int* p) { for( int i = 0 ; i < iNum ; i++ ) { p[i] = i; } } void fun2(int* p) { for( int i =

AppCan JSSDK模块扩展

1.      从源码开始: 我们先看源码的8188行到9525行: window.appcan && appcan.define('window',function($,exports,module){         var subscribeGlobslQueue = [];//订阅队列     var bounceCallQueue = [];//     var multiPopoverQueue = {};     var currentOS = '';     var key

浅析selenium的PageFactory模式

前面的文章介绍了selenium的PO模式,见文章:http://www.cnblogs.com/qiaoyeye/p/5220827.html.下面介绍一下PageFactory模式. 1.首先介绍FindBy类: For example, these two annotations point to the same element: @FindBy(id = "foobar") WebElement foobar; @FindBy(how = How.ID, using = &q

php学习笔记 面向对象中[接口]与[多态性]的应用

代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽象方法(不

C/C++打印堆栈信息

转自:http://www.cnblogs.com/zhurizhe/p/3412369.html 在C/C++程序中打印当前函数调用栈 前几天帮同事跟踪的一个程序莫名退出,没有core dump(当然ulimit是打开的)的问题.我们知道,正常情况下,如果程序因为某种异常条件退出的话,应该会产生core dump,而如果程序正常退出的话,应该是直接或者间接的调用了exit()相关的函数.基于这个事实,我想到了这样一个办法,在程序开始时,通过系统提供的atexit(),向系统注册一个回调函数,在

First lesson of python

1.    assigment  operator a=1 a+=1    equal     a=a+1 2.    Conditional operator ''=='' doesn't mean ''='' e.g.      a=1 b=2 bool(a==b) => false 3.    if...else if []:      if "":      # false if (condition expression1): ... elif (condition e

Java关键字——instanceof

Java中可以使用instanceof关键字判断一个对象到底是哪一个类的实例 格式:对象 instance 类 返回 boolean类型 通过子类实例化的对象同时是子类和父类的实例,无论是直接声明子类还是声明了父类,然后再通过子类向上转型 如果直接通过父类实例化本类对象,则一定不是子类的实例 //================================================= // File Name : ploy_up_demo //---------------------

php面向对象编程(三)

<? class Person { // 下面是人的成员属性 var $name; // 人的名子 var $sex; // 人的性别 var $age; // 人的年龄 // 定义一个构造方法参数为属性姓名$name.性别$sex和年龄$age进行赋值 function __construct($name = "", $sex = "", $age = "") { $this->name = $name; $this->sex

《More Effective C++》读书笔记

http://www.cnblogs.com/tianyajuanke/archive/2012/11/29/2795131.html 一.基础议题(Basics) 1.仔细区别 pointers 和 references 当一定会指向某个对象,且不会改变指向时,就应该选择 references,其它任何时候,应该选择 pointers. 实现某一些操作符的时候,操作符由于语义要求使得指针不可行,这时就使用引用. 二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以:指针可以被重新