日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Ubuntu環(huán)境下測試Cache大小并校驗

Cache存儲器:電腦中為高速緩沖存儲器,是位于CPU和主存儲器DRAM(Dynamic Random Access Memory)之間,規(guī)模較小,但速度很高的存儲器,通常由SRAM(Static Random Access Memory 靜態(tài)存儲器)組成。它是位于CPU與內(nèi)存間的一種容量較小但速度很高的存儲器。CPU的速度遠高于內(nèi)存,當CPU直接從內(nèi)存中存取數(shù)據(jù)時要等待一定時間周期,而Cache則可以保存CPU剛用過或循環(huán)使用的一部分數(shù)據(jù),如果CPU需要再次使用該部分數(shù)據(jù)時可從Cache中直接調(diào)用,這樣就避免了重復(fù)存取數(shù)據(jù),減少了CPU的等待時間,因而提高了系統(tǒng)的效率。Cache又分為L1Cache(一級緩存)和L2Cache(二級緩存),L1Cache主要是集成在CPU內(nèi)部,而L2Cache集成在主板上或是CPU上。

為普定等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及普定網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、普定網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

C++測試cache大小

代碼
/*
* 代碼思路:創(chuàng)建一個連續(xù)內(nèi)存塊,進行連貫、大量、隨機的有意義訪問,要保證整塊內(nèi)存盡可能全部放入cache。當
* 內(nèi)存被整塊放入cache中時,訪問速度會明顯加快,直到有一個時間跳躍點,消耗時間增多,則這個跳躍點的存儲容* 量大小即為cache大小
*/

#include
#include
#include
#include

#define KB(x) ((size_t)(x) << 10)

using namespace std;

int main()
{
    // 需要測試的數(shù)組的大小
    vector sizes_KB;
    for (int i = 1; i < 18; i++)
    {
        sizes_KB.push_back(1 << i);
    }
    random_device rd;
    // 偽隨機數(shù)算法,計算更快,占用內(nèi)存更少
    mt19937 gen(rd());

    for (size_t size : sizes_KB)
    {
        // 離散均勻分布類
        uniform_int_distribution<> dis(0, KB(size) - 1);
        // 創(chuàng)建連續(xù)內(nèi)存塊
        vector memory(KB(size));
        // 在內(nèi)存中填入內(nèi)容
        fill(memory.begin(), memory.end(), 1);
       
        int dummy = 0;
       
        // 在內(nèi)存上進行大量的隨機訪問并計時
        clock_t begin = clock();
        // 1<<25:將1左移25位,進行大量隨機訪問
        for (int i = 0; i < (1 << 25); i++)
        {
            dummy += memory[dis(gen)];
        }
        clock_t end = clock();
       
        // 輸出
        double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
        cout << size << " KB, " << elapsed_secs << "secs, dummy:" << dummy << endl;
    }
}

運行結(jié)果

解析

由運行結(jié)果可以看出,內(nèi)存訪問時間在 8192KB 的時候發(fā)生了跳躍,由此推測cache的大小在 8192KB 左右,即8M左右,下面會進行驗證。

Ubuntu查看cahce大小

在命令行中輸入如下代碼:
getconf -a | grep CACHE

在本機環(huán)境中得到如下測試結(jié)果:

6291456/1024/1024 = 6M,所以本機chche大小為6M,與代碼測試結(jié)果大體相符


網(wǎng)頁標題:Ubuntu環(huán)境下測試Cache大小并校驗
文章地址:http://www.5511xx.com/article/djeghsi.html