最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于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è)試了一下單線程中執(zhí)行memcpy的效率,這個(gè)結(jié)果對(duì)于配置TCP epoll中的work thread

數(shù)量有指導(dǎo)意義。如下基于8K的內(nèi)存快執(zhí)行memcpy, 1個(gè)線程大約1S能夠拷貝500M,如果服務(wù)器帶寬或網(wǎng)卡到上限是1G,那么網(wǎng)絡(luò)io的work thread 開(kāi)2個(gè)即可,考慮到消息的解析損耗,3個(gè)線程足以抗住硬件的最高負(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++對(duì)Json數(shù)據(jù)的友好處理實(shí)現(xiàn)過(guò)程

    C++對(duì)Json數(shù)據(jù)的友好處理實(shí)現(xiàn)過(guò)程

    在Ajax的應(yīng)用中,前臺(tái)基本上會(huì)用到JSON作為數(shù)據(jù)交換格式,所以下面這篇文章主要給大家介紹了關(guān)于C++對(duì)Json數(shù)據(jù)的友好處理,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • CreateThread()與beginthread()的區(qū)別詳細(xì)解析

    CreateThread()與beginthread()的區(qū)別詳細(xì)解析

    很多開(kāi)發(fā)者不清楚這兩者之間的關(guān)系,他們隨意選一個(gè)函數(shù)來(lái)用,發(fā)現(xiàn)也沒(méi)有什么大問(wèn)題,于是就忙于解決更為緊迫的任務(wù)去了。等到有一天忽然發(fā)現(xiàn)一個(gè)程序運(yùn)行時(shí)間很長(zhǎng)的時(shí)候會(huì)有細(xì)微的內(nèi)存泄露,開(kāi)發(fā)者絕對(duì)不會(huì)想到是因?yàn)檫@兩套函數(shù)用混的結(jié)果
    2013-09-09
  • C++中 string 中的常用方法使用心得

    C++中 string 中的常用方法使用心得

    這篇文章主要介紹了C++中 string 中的常用方法使用心得,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C++中線性代數(shù)計(jì)算Eigen庫(kù)的使用教程詳解

    C++中線性代數(shù)計(jì)算Eigen庫(kù)的使用教程詳解

    Eigen是一個(gè)基于線性代數(shù)的C++模板庫(kù),主要用于矩陣、向量、數(shù)值求解和相關(guān)算法,本文主要為大家簡(jiǎn)單聊聊Eigen庫(kù)的使用,希望對(duì)大家有所幫助
    2023-12-12
  • C語(yǔ)言全面梳理文件操作方法

    C語(yǔ)言全面梳理文件操作方法

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的文件操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-05-05
  • C++ 實(shí)現(xiàn)2048游戲示例

    C++ 實(shí)現(xiàn)2048游戲示例

    《2048》是比較流行的一款數(shù)字游戲。原版2048首先在github上發(fā)布,原作者是Gabriele Cirulli。它是基于《1024》和《小3傳奇》的玩法開(kāi)發(fā)而成的新型數(shù)字游戲。
    2014-06-06
  • 詳談浮點(diǎn)精度(float、double)運(yùn)算不精確的原因

    詳談浮點(diǎn)精度(float、double)運(yùn)算不精確的原因

    這篇文章主要介紹了詳談浮點(diǎn)精度(float、double)運(yùn)算不精確的原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • VS2019實(shí)現(xiàn)C++的第一個(gè)MFC程序

    VS2019實(shí)現(xiàn)C++的第一個(gè)MFC程序

    本文主要介紹了VS2019實(shí)現(xiàn)C++的第一個(gè)MFC程序,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單五子棋游戲

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C C++ LeetCode題解在二叉樹(shù)中增加一行示例詳解

    C C++ LeetCode題解在二叉樹(shù)中增加一行示例詳解

    這篇文章主要為大家介紹了C C++ LeetCode題解在二叉樹(shù)中增加一行示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10

最新評(píng)論

台南市| 来安县| 新兴县| 淮阳县| 凤台县| 武宁县| 宝清县| 凤冈县| 安仁县| 宝清县| 拉孜县| 西城区| 永仁县| 太湖县| 榆林市| 温宿县| 辽宁省| 兰西县| 外汇| 金秀| 新泰市| 高清| 虞城县| 宁化县| 名山县| 偏关县| 庆云县| 东阿县| 盐城市| 象州县| 淮南市| 科技| 横山县| 扶沟县| 襄垣县| 息烽县| 普安县| 驻马店市| 普洱| 滨海县| 邵阳县|