程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> vs2010 在函數級別設置優化,vs2010函數

vs2010 在函數級別設置優化,vs2010函數

編輯:C++入門知識

vs2010 在函數級別設置優化,vs2010函數


平時開發的時候,為了方便調試,visual studio 的Configuration 設置成Release。

同時為了事後調試,Optimization總是設置成Disabled。這樣做是方便查看變量的數值。

但遇到計算密集的功能實現,優化關閉還是挺費時間的。

void calc(int nMax)
{
    int nTotal = 0;
    for (int index = 0;index < nMax;index++)
    {
        nTotal = 0;
        for (int subIndex = index;subIndex < nMax+index;subIndex++ )
        {
            nTotal += subIndex;
        }
    }
}

  

 

最初我的想法是project的優化關閉,相關文件的優化打開,測試後發現沒有什麼作用。

#pragma optimize( "gs", on ) void calc(int nMax) { int nTotal = 0; for (int index = 0;index < nMax;index++) { nTotal = 0; for (int subIndex = index;subIndex < nMax+index;subIndex++ ) { nTotal += subIndex; } } } #pragma optimize( "gs", off )

  

經過測試,針對函數的優化,性能和project優化相當。

未優化前:0.67秒

優化後:0.00秒

 

這樣以後事後調試還是很方便的。

 

測試環境:

ide:vs2010

項目:console

Configuration :Release。

Optimization:Disabled

實現代碼:

 

#include "stdafx.h"
#include <Windows.h>

#pragma optimize( "gs", on )
void calc(int nMax)
{
    int nTotal = 0;
    for (int index = 0;index < nMax;index++)
    {
        nTotal = 0;
        for (int subIndex = index;subIndex < nMax+index;subIndex++ )
        {
            nTotal += subIndex;
        }
    }
}
#pragma optimize( "gs",  off )


void retry(int nMin)
{
    int nTry = 0;
    nTry = nMin;
}

int _tmain(int argc, _TCHAR* argv[])
{
    LARGE_INTEGER	freq				= {0};			
    LARGE_INTEGER	beginPerformanceCount	= {0};
    LARGE_INTEGER	closePerformanceCount	= {0};

    QueryPerformanceFrequency(&freq);

    QueryPerformanceCounter(&beginPerformanceCount);
    calc(10000);
    QueryPerformanceCounter(&closePerformanceCount);

    retry(2020);
    double delta_seconds = (double)(closePerformanceCount.QuadPart - beginPerformanceCount.QuadPart) / freq.QuadPart;
    printf("%f",delta_seconds);
    getchar();
	return 0;
}

  

 

相關鏈接:

https://msdn.microsoft.com/en-us/library/chh3fb0k(v=vs.100).aspx

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved