当前位置:编程学习 > C/C++ >>

C/C++ For循环语句的效率测试优化及运行时错误:Stack Overflow的解决办法

C/C++ For循环语句的效率测试优化及运行时错误:Stack Overflow的解决办法
 
在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的
循环放在最外层,以减少CPU跨切循环层的次数。
 
使用以下代码对嵌套For循环的效率进行测试验证:
[cpp]  
// For嵌套性能.cpp : Defines the entry point for the console application.  
//  
  
#include "stdafx.h"  
#include <iostream>     
#include <time.h>     
using namespace std;    
  
int main(void)    
{    
    clock_t cstart,cends;    
      
    cstart=clock();  
      
    long sum1 =0;  
    long a1[5][10000000];  
      
    for(long i = 0; i < 5; i++)                  
    {  
        for(long j = 0; j < 10000000; j++)  
        {  
            sum1 += a1[i][j];  
        }  
    }  
      
    cout << "sum1=:" << sum1 << endl;  
      
    cends=clock();    
      
    cout << "Clock时间差:" << cends-cstart << endl;    
  
    /////////////////////////////////////////////////////////////////  
    cstart=clock();  
      
    long sum =0;  
    long a[10000000][5];  
  
    for(i = 0; i < 10000000; i++)                  
    {  
        for(long j = 0; j < 5; j++)  
        {  
            sum += a[i][j];  
        }  
    }  
      
    cout << "sum=:" << sum << endl;  
      
    cends=clock();    
      
    cout << "Clock时间差:" << cends-cstart << endl;    
      
    //////////////////////////////////////////////////////////////  
  
      
    system("pause");    
  
    return 0;    
}    
 
运行结果:
 
以上代码在Windows Server 2008 x64 系统上编译通过,
IDE为:Microsoft Visual c++ sp6
可以编译通过,但是运行会出现错误:
\
 
运行时错误:Stack Overflow的解决办法:
 

\

\


补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,