評估cache中的資料預期技術

2021-07-07 04:10:25 字數 922 閱讀 6577

1.設計資料密集型程式,評估cpu資料預取效果:

建立乙個長度為1024*1024*64的一維陣列,不採用預取技術的方法是,以16為步長(盡量保持資料不在乙個cache行)取資料,並作運算,計算該過程所用時間;採用預取技術的方法是,採用_mm_prefetch函式進行陣列的欲取,仍然以16為步長(盡量保持資料不再乙個cache行)取資料,並作運算,計算該過程所用時間。源**如下,

在win7

命令列中,使用

dev c++

編譯命令:

g++ test.cpp

,實驗結果如下:

從實驗結果可以看出,對於同樣的計算過程,不採用預取技術所花費的時間是採用預取技術話費時間的2.4倍,可以看出預取技術對程式有明顯的優化效果。

#include #include #include#include #define n 1024

using namespace std;

int main()

finish_time = (double)clock();

time =(finish_time-start_time)/clocks_per_sec;

cout << "no_prefetch:"<< time <

//有資料預取時,程式執行時間

start_time = (double)clock();

for(i=0;i

finish_time =(double)clock();

time = (finish_time-start_time)/clocks_per_sec;

cout << "prefetch:"<< time << "s" << endl;

delete a;

delete b;

system("pause");

}

ASP中CACHE技術的應用

asp從發布至今已經7年了,使用asp技術已經相當成熟,自從 微軟推出了asp.net之後就逐漸停止了對asp版本的更新。但是由於有很多人仍然習慣使用asp來開發 所以,再次我將以乙個簡單的例子來說明在asp中如何使用cache。code asp default.asp language vbscr...

asp中快取cache技術的應用

asp從發布至今已經7年了,使用asp技術已經相當成熟,自從微軟推出了asp.net之後就逐漸停止了對asp版本的更新。但是由於有很多人仍然習慣使用asp來開發 所以,再次我將以乙個簡單的例子來說明在asp中如何使用cache。簡單的說使用cache基本原理是,把經常需要且獲得代價昂貴的資料在記憶體...

記憶體中的cache

在linux的記憶體管理中,這裡的buffer指linux記憶體的 buffer cache。這裡的cache指linux記憶體中的 page cache。翻譯成中文可以叫做緩衝區快取和頁面快取。什麼是page cache?page cache主要用來作為檔案系統上的檔案資料的快取來用,尤其是針對當...