亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于C++執(zhí)行內(nèi)存memcpy效率測(cè)試的分析

 更新時(shí)間:2013年05月04日 15:47:26   作者:  
本篇文章對(duì)C++中執(zhí)行內(nèi)存memcpy的效率進(jìn)行了分析測(cè)試。需要的朋友參考下

在進(jìn)行memcpy操作時(shí),雖然是內(nèi)存操作,但是仍然是耗一點(diǎn)點(diǎn)CPU的,今天測(cè)試了一下單線(xiàn)程中執(zhí)行memcpy的效率,這個(gè)結(jié)果對(duì)于配置TCP epoll中的work thread

數(shù)量有指導(dǎo)意義。如下基于8K的內(nèi)存快執(zhí)行memcpy, 1個(gè)線(xiàn)程大約1S能夠拷貝500M,如果服務(wù)器帶寬或網(wǎng)卡到上限是1G,那么網(wǎng)絡(luò)io的work thread 開(kāi)2個(gè)即可,考慮到消息的解析損耗,3個(gè)線(xiàn)程足以抗住硬件的最高負(fù)載。

在我到測(cè)試機(jī)器上到測(cè)試結(jié)果是:

Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz

do memcpy speed:12.27 ms/MB
each thread can do memcpy 667.645 MB

復(fù)制代碼 代碼如下:

#include <iostream>
 #include <sys/time.h>
 #include <string.h>

 using namespace std;

 int main(int argc, char* argv[])
 {
         long len = 8192;
         int  loop = 200;
         char* p = new char[len];
         char* q = p;
         struct timeval start, end;
         gettimeofday(&start, NULL);
         for (int i =0; i < loop; ++i)
         {
                 char* p = new char[len];
                 *p = char(i);
                 memcpy(p, q, len);
                 delete [] p;
         }
         gettimeofday(&end, NULL);
         cout <<"do memcpy speed:" << ((end.tv_sec - start.tv_sec)*1000 + double(end.tv_usec - start.tv_usec) / (len*loop/1000/1000) ) / loop<<" ms/MB\n";
         cout <<"each thread can do memcpy "<< double(len)*loop/1000/1000 / ((end.tv_sec - start.tv_sec) + double(end.tv_usec - start.tv_usec) / 1000/1000) <<" MB\n";

 }

相關(guān)文章

  • C++ Virtual關(guān)鍵字的具體使用

    C++ Virtual關(guān)鍵字的具體使用

    這篇文章主要介紹了C++ Virtual關(guān)鍵字的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • C++ 中String 替換指定字符串的實(shí)例詳解

    C++ 中String 替換指定字符串的實(shí)例詳解

    這篇文章主要介紹了C++ 中String 替換指定字符串的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • C++ 數(shù)據(jù)結(jié)構(gòu)之kmp算法中的求Next()函數(shù)的算法

    C++ 數(shù)據(jù)結(jié)構(gòu)之kmp算法中的求Next()函數(shù)的算法

    這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu)之kmp算法中的求Next()函數(shù)的算法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Qt線(xiàn)程QThread開(kāi)啟和安全退出的實(shí)現(xiàn)

    Qt線(xiàn)程QThread開(kāi)啟和安全退出的實(shí)現(xiàn)

    本文主要介紹了Qt線(xiàn)程QThread開(kāi)啟和安全退出的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • C語(yǔ)言的位段與枚舉詳解

    C語(yǔ)言的位段與枚舉詳解

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的位段與枚舉,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C語(yǔ)言實(shí)現(xiàn)字符串替換的示例代碼

    C語(yǔ)言實(shí)現(xiàn)字符串替換的示例代碼

    本文主要介紹了C語(yǔ)言實(shí)現(xiàn)字符串替換的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++ primer超詳細(xì)講解泛型算法

    C++ primer超詳細(xì)講解泛型算法

    泛型編程,故如其名,是一個(gè)泛化的編程方式。其實(shí)現(xiàn)原理為程序員編寫(xiě)一個(gè)函數(shù)/類(lèi)的代碼示例,讓編譯器去填補(bǔ)出不同的函數(shù)實(shí)現(xiàn)
    2022-07-07
  • OpenCV實(shí)現(xiàn)車(chē)牌定位(C++)

    OpenCV實(shí)現(xiàn)車(chē)牌定位(C++)

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)車(chē)牌定位,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++ 中assert()函數(shù)用法總結(jié)

    C++ 中assert()函數(shù)用法總結(jié)

    這篇文章主要介紹了C++ 中assert()函數(shù)用法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • C++ COM編程之QueryInterface函數(shù)(一)

    C++ COM編程之QueryInterface函數(shù)(一)

    這篇文章主要介紹了C++ COM編程之QueryInterface函數(shù)(一),QueryInterface是組件本身提供對(duì)自己查詢(xún)的一個(gè)接口,需要的朋友可以參考下
    2014-10-10

最新評(píng)論