遊戲服務器優化

網絡遊戲服務器注意事項,優化措施
1:IO操做是最大的性能消耗點,注意優化餘地很大。
2:算法數據結構。排序尋路算法的優化。list,vector,hashmap的選擇。大數據尋址,不要考慮遍歷,注意考慮hash.
3:內存管理。重載new/delete,內存池,對象池的處理。
4:數據的提早準備和即時計算。
5:CPU方面的統計監視。邏輯幀計數(應當50ms之內)。
6:預分配池減小切換和調度,預處理的線程池和鏈接池等。
7:基與消息隊列的統計和信息監視框架。
8:CPU消耗排名:第一AOI同步,第二網絡發包I/O操做,第三技能/BUFF斷定計算處理,第四定時器的頻率。
9:內存泄露檢測,內存訪問越界警戒,內存碎片的回收。
10:內存消耗排名:第一玩家對象包括其物品,第二網絡數據緩衝。
11:注意32位和64位的內存容錯。
12:減小沒必要要的分包發送。
13:減小重複包和重拷貝包的代價。
14:建議分緊急包(馬上發送)和非緊急包(定時輪訓發送)。
15:帶寬消耗排名:第一移動位置同步,第二對象加載,第三登錄突發包,第四狀態機定時器消息。
16:客戶端可作部分預判斷機制,部分操做盡可能分包發送。
17:大量玩家彙集時,部分非緊急包進行丟棄。
18:注意數據庫單表內key數量。
19:活躍用戶和非活躍用戶的分割存取處理。
20:控制玩家操做對數據庫的操做頻率。
21:注意使用共享內存等方式對數據進行安全備份存儲。
22:注意安全策略,對內網進行IP檢查,對日誌進行記錄,任意兩環點內均使用加密算法會更佳。
23:實時注意對網關,數據庫等接口進行監察控制。
24:定時器應當存儲一個隊列,而非單向定位。
25:九宮格數據同步時,不須要直接進行九宮格的同步,對角色加一個AOI,基於圓方碰撞原理,拋棄沒必要要的格信息,可大幅節省。
26:客戶端作部分的預測機制,服務器檢測時注意時間戳問題。
27:按期心跳包,檢查死連接是必要的。
28:爲了實現更加負責多種類的AI,AI尋路獨立服務器設計已是必須的了。其次須要考慮的是聊天,同步。
29:服務器內網間能夠考慮使用UDP。
30:注意全部內存池,對象池等的動態擴張分配。mysql

1:之內存換取CPU的理念。
2:NPC不死理念。(只會disable)
3:動態擴展理念,負載均衡理念。
4:客戶端不可信理念。
5:指針數據,消息均不可信理念。算法

6:儘可能在客戶端進行最嚴格的校驗,擋住無謂的請求sql

7:能放在客戶端的功能,放在客戶端實現,服務器進行校驗便可數據庫

相關文章
相關標籤/搜索