1. 程式人生 > >網路遊戲伺服器注意事項,優化措施

網路遊戲伺服器注意事項,優化措施

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:注意所有記憶體池,物件池等的動態擴張分配。

1:以記憶體換取CPU的理念。
2:NPC不死理念。(只會disable)
3:動態擴充套件理念,負載均衡理念。
4:客戶端不可信理念。
5:指標資料,訊息均不可信理念。