伺服器開發的一點心得體會

2022-07-30 17:12:13 字數 807 閱讀 4230

這段時間在公司做一款遊戲伺服器開發,開發過程中的一點體會記錄下來,日後也是一點經驗

1.定時重新整理機制,伺服器中,要有不斷定時重新整理的措施,比如任務系統

2.執行緒的管理和排程,一般使用執行緒池方案

3.記憶體方面,為了提高效能,通常使用記憶體池,而不是頻繁地動態分配記憶體

4.資料報的設計,通常為 頭部+資料報體 的方式,接受資料報時,先接受包頭,然後根據包頭描述的大小接收剩下的資料;

資料報的記憶體表現上,為了節省空間,通常將資料按二進位制形式序列化(或者說序列化)到buffer中再傳送。

google的protobuf是個很好的工具,雖然在此次專案中沒有用到,以後可能會考慮使用。

5.佇列的運用,伺服器中一般是多執行緒處理,佇列的思想能夠讓邏輯變得清晰,伺服器中經常用到,比如資料報佇列。其實在windows平台下,完成埠iocp也是運用了佇列 的思想

6.避免競爭,將乙個socket或者連線的處理都放在乙個執行緒中,不要讓多個執行緒同時處理同乙個socket

7.日誌系統,日誌系統也可以運用執行緒和佇列思想,可以考慮用跨平台的日誌庫,log4cplus(log4cxx),一款功能強大的開源c++日誌庫

8.非同步**思想的運用,伺服器中有時要處理的結果並不是馬上能夠獲取到,會發生阻塞,比如資料庫的查詢和更新(資料庫的插入和更新都很耗時)等,此時可以運用非同步**的方式提高效能。

9.超時檢測,有時候由於網路原因,客戶端已經斷線了,但伺服器可能會很久都沒收到訊號,因此,定時的超時檢測是很有必要的。

10.狀態機的運用,比如使用者狀態機,狀態機的運用能夠使得邏輯更清晰

11.設計模式運用,用的比較多比如單例模式,觀察者模式

一點心得體會

回顧自己從出生到現在的20多年,往事一幕幕 生命中各個重要的事件 真的是應了那一句話,有時候悲劇的注定,多半是由性格所致。諸多人情世故,有時候,父母教育是乙個方面,但父母的閱歷也有限,此時,書籍 其他長輩 甚至平輩的引導,都是有益的 秋水 致我日夜思念 深深愛 著 過的人 以後補充 人記不住太遠的事...

一點心得體會

畢業5年了,等於又讀完乙個大學了,但是因為甚少記錄和歸納學到的東西,看不清自己的成長,心裡十分惶恐。現將自己還記得清楚的成長記錄下來,希望不要丟掉。這是得益於我的測試工作。清晰的界限首先會讓你從全域性去考慮問題,讓你不會一開始掉入細節,也讓你在細節的學習中,永遠做到心中有數。學會合理調動資源 站在巨...

架構的一點心得體會

今天看了唐巧寫的文章,我覺得我也應該學習大神,嘗試著將自己的學到的知識,以技術部落格的形式展現出來,供大家借鑑學習!以前總是想想過後再寫,第一篇文章就在今天萌芽了!今天就談談看了別人寫的程式架構的設計之後的感想!之前做過乙個 ios教育的專案,專案結構是我搭的,第一次搭,我就按照專案的功能,以及公共...