同樣的ARM板硬體上跑TCP服務端,在windows上跑TCP客戶端進行速率測驗。
1、ARM上跑裸機代碼時傳輸速率能達到700Mbps;
2、上了Linux系統后,速率最大只能達到約500Mbps。
綜合分析之后,發現其它硬體一模一樣,只是一個跑ARM裸機程式、另一個跑Linux應用程式(send函式)。
Linux代碼檢查過了,暫時沒發現問題,125MB(1000Mbit)資料,從send開始到結束就耗時2秒了。
暫無其它思路了,請大神指點,謝謝!
uj5u.com熱心網友回復:
ARM上跑裸機代碼,這是什么意思?一般說來,你最好用iperf或netperf進行測驗,應該有到1G左右的速率uj5u.com熱心網友回復:
自行補充一下,發現了點奇怪現象,如果send的buf是通過mmap得到的,速率就是上面說的500Mbps,如果buf是malloc得到的,那么速率就能達到700Mbps
uj5u.com熱心網友回復:
我用的ARM板是賽靈思的SOC,上面可以跑裸機代碼,也可以移植Linux上去跑應用。網卡速率應該沒什么問題,我后續測驗發現是因為send傳入的緩沖區地址不一樣會導致發送速率不一樣,可以看我在#3樓的描述。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/242028.html
標籤:應用程序開發區
上一篇:CentOS6的官方源及國內各大鏡像源倉庫失效及解決
下一篇:Ubuntu安裝問題
