當我們在類成員函式中頻繁操作類成員變數時(例如,在for迴圈中反覆呼叫成員變數),我們可以把該成員變數複製到成員函式中,成為區域性變數,幫助編譯器更好的優化迴圈體,因為成員變數對編譯器來說更容易追蹤。
例如下面程式,在operator()的for迴圈中反覆呼叫成員變數m_i:
// main.cpp
#include
#include "tbb/tbb.h"
using
namespace
std;
using
namespace tbb;
#define num 100000000
class body
~body() {}
void
operator()()
}int m_i;
};int main(int argc, char** args)
執行時間大約為0.38s。
在operator()中把成員變數m_i複製到區域性變數i上:
#include
#include "tbb/tbb.h"
using
namespace
std;
using
namespace tbb;
#define num 100000000
class body
~body() {}
void
operator()()
}int m_i;
};int main(int argc, char** args)
執行時間大約為0.35s,和沒有區域性處理相比快了0.03s,這是乙個較大的效能提高。
成員變數 類變數 區域性變數的區別
變數名首寫字母使用小寫,如果由多個單詞組成,從第2個單詞開始的其他單詞的首寫字母使用大寫。如果區域性變數的名字和成員變數的名字相同,要想在該方法中使用成員變數,必須使用關鍵字this。成員變數和區域性變數的區別 成員變數 1 成員變數定義在類中,在整個類中都可以被訪問。2 成員變數隨著物件的建立而建...
成員變數 類變數 區域性變數的區別
變數名首寫字母使用小寫,如果由多個單詞組成,從第2個單詞開始的其他單詞的首寫字母使用大寫。如果區域性變數的名字和成員變數的名字相同,要想在該方法中使用成員變數,必須使用關鍵字this class people public void speak public class testthis 輸出結果 ...
成員變數 類變數 區域性變數的區別
成員變數 類變數 區域性變數的區別 變數名首寫字母使用小寫,如果由多個單詞組成,從第2個單詞開始的其他單詞的首寫字母使用大寫。如果區域性變數的名字和成員變數的名字相同,要想在該方法中使用成員變數,必須使用關鍵字this class people public void speak public cl...