KendyNet性能測試


這幾天編寫了一個測試程序,測試我的網絡庫(KendyNet for Windows)的性能,主要用於模擬大量玩家在同一區域內,

互相可見情況下網絡的壓力情況.

測試環境:

客戶機和服務器 E5520 4GB windows 2008 server

千兆網.

客戶機啟動一個進程,建立360個連接到服務器,模擬360個客戶端,每個客戶端每秒發送16個28字節的封包,服務器

收到每個封包都將其轉發給所有的360個客戶端.

處理能力是每秒接收6000+,轉發220W+,CPU占滿單個核心,內存占用8M左右,封包一個來回的平均延時在46ms左右.

這已經達到了最大處理能力,再加連接就開始導致性能下降,內存消耗暴增.

https://github.com/sniperHW/KendyNet/tree/master/IOCP

可以取得測試代碼,需要注意的是,請將winsock2.h中的FD_SETSIZE從64改成1024,另外因為使用了

SetFileCompletionNotificationModes所以在xp,和windows 2003上是無法運行測試程序的 。

后面將會着手編寫KendyNet for linux的測試程序.

 (2012-5-19,做了點優化,將wpacket_t和rpacket_t的產生從malloc換成對象池,目前可以穩定支持420個客戶端,每秒轉發290W個包,

當玩家超過450時,轉發量達到340W並維持了一段時間(大概一兩分鍾),cpu 13%,已經占滿單個核心,服務器逐漸處理不過來,延時變大,很快對象池空間耗盡。)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM