C 執行記憶體memcpy的效率測試

2021-09-08 02:43:07 字數 972 閱讀 9302

在進行memcpy操作時,雖然是記憶體操作,但是仍然是耗一點點cpu的,今天測試了一下單執行緒中執行memcpy的效率,這個結果對於配置tcp epoll中的work thread

數量有指導意義。如下基於8k的記憶體快執行memcpy, 1個執行緒大約1s能夠拷貝500m,如果伺服器頻寬或網絡卡到上限是1g,那麼網路io的work thread 開2個即可,考慮到訊息的解析損耗,3個執行緒足以抗住硬體的最高負載。

在我到測試機器上到測試結果是:

intel(r) xeon(r) cpu           e5405  @ 2.00ghz

do memcpy speed:12.27 ms/mb

each thread can do memcpy 667.645 mb

1 #include 

2 #include

3 #include 45

using

namespace std;67

int main(int argc, char* ar**)

8 22 gettimeofday(&end, null);

23 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

";24 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

";25

26 }

C語言memcpy函式的效率問題

為了方便解釋,我們首先檢視memcpy的原始碼,版本 glibc 2.8 memcpy.c include include include undef memcpy void memcpy dstpp,srcpp,len void dstpp const void srcpp size t len ...

c程式執行記憶體檢視 對於記憶體結構的簡單理解

最近花了點時間讀了 深入理解c指標 這本書,讀完這本書後,對於之前嵌入式c語言開發中很多一知半解的地方豁然開朗。對於之前學習以及工作中,很多沒有注意的問題,也有了更加深刻的理解和認識。今天就花點時間整理下這段時間讀完這本書後的所學所得,也方便後續檢視。我們在開發c語言程式的時候,程式需要在編譯器中編...

PHP 自帶查詢執行記憶體的函式

memory get usage 返回分配給 php 的記憶體量 int memory get usage bool real usage false 返回當前分配給你的 php 指令碼的記憶體量,單位是位元組 byte 乙個例子 這只是個例子,下面的數字取決於你的系統 echo memory ge...