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主要用來作為檔案系統上的檔案資料的快取來用,尤其是針對當...