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 = 0 ; i < iNum ; i+= 4  )
    {
        p[i] = i;
        p[i+1] = i+1;
        p[i+2] = i+2;
        p[3+3] = i+3 ;
    }
}

测试程序一:
void main()
{
    int * p = new int[iNum];
    int x1 = time(NULL);
    fun1(p);
    int x2 = time(NULL);
    fun2(p);
    int x3 = time(NULL);
    cout << (long)(x2-x1) << "秒 " << (long)(x3-x2) << "秒";
    delete [] p ;
}
五次的运行结果:
4,3
5,2
4,3
5,2
4,3

测试程序二fun2在前,fun1在后:
void main()
{
    int * p = new int[iNum];
    int x1 = time(NULL);
    fun2(p);
    int x2 = time(NULL);
    fun1(p);
    int x3 = time(NULL);
    cout << (long)(x2-x1) << "秒 " << (long)(x3-x2) << "秒";
    delete [] p ;
}
五次的运行结果:
3,4
3,5
3,4
2,5
3,4

总结3亿次循环,可以节约1秒左右。


p[3+3] = i+3 ; 弄错了,改正。 时间精确到毫秒。

#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 = 0 ; i < iNum ; i+= 4  )
    {
        p[i] = i;
        p[i+1] = i+1;
        p[i+2] = i+2;
        p[i+3] = i+3 ;
    }
}

void Test()
{
    int * p = new int[iNum];
    long x1 = clock();
    fun1(p);
    long x2 = clock();
    fun2(p);
    long x3 = clock();
    cout << (x2-x1) << "豪秒 " << (x3-x2) << "豪秒" << endl;
    delete [] p ;
}

void main()
{
   Test();
   Test();
   Test();
   Test();
   Test();
}

结果为:

4734豪秒 3547豪秒
5078豪秒 3047豪秒
4453豪秒 3047豪秒
4468豪秒 2954豪秒
4531豪秒 3063豪秒

换一下Test中fun1,fun2的位置:

void Test()
{
    int * p = new int[iNum];
    long x1 = clock();
    fun2(p);
    long x2 = clock();
    fun1(p);
    long x3 = clock();
    cout << (x2-x1) << "豪秒 " << (x3-x2) << "豪秒" << endl;
    delete [] p ;

}

结果为:

3016豪秒 4313豪秒
2938豪秒 4344豪秒
2953豪秒 4515豪秒
2875豪秒 4343豪秒
2875豪秒 4329豪秒

结论:也是快1.5秒。


posted on 2021-03-03 17:51  闻缺陷则喜何志丹  阅读(5)  评论(0编辑  收藏  举报  来源