在進行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 #include2 #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...