(1) i/o 模型的選擇,
epoll就一定好嗎? 那是肯定的。
這個和select, poll有什麼區別。
epoll還有比select, poll先進得地方, 就在於將fd得列表維護在核心中, 而select, poll是呼叫一次,傳遞一次, 這點epoll領先是沒得說得。
最主要還是epoll系統呼叫的實現方式採用事件方式,比poll, select的輪詢方式強的多
(2) 使用非堵塞
做為網路伺服器, 堵塞i/o一般情況下不予考慮,視伺服器模型
(3) 減少i/o操作和無謂的系統呼叫
比如利用writev一次性寫入多個資料, 減少write呼叫的次數.
或者使用零拷貝的sendfile,tee等
(4) tcp是雙工的
這點不要忽略掉, 資料**程式就在於資料的**速度, 這裡我採用讀和寫分開執行緒的處理方式
(5) 程序還是執行緒
這個無關緊要,乙個粒度和資料訪問, 穩定性的問題。減少之間的相互影響,盡量沒有關聯, 比如減少對相關互斥資料的訪問等等。
(6) 盡量在設計上做到不需要鎖
比如使用環形快取, 環形訊息佇列等
網路協議一些總結
下面是一些經常在筆試或者面試中碰到的重要的概念,特在此做摘抄和總結。一 什麼是tcp連線的三次握手 第一次握手 客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 sy...
開發的一些總結(2)
1.static的意義 如果任何乙個x前加了static修飾,那麼這個x允許其他原始檔建立同名函式且不衝突。不能被其他原始檔訪問 修改,可以直接用class訪問,不用例項化。同時static類的東西也不能操作非static型別的東西。在標頭檔案如果說明了乙個static型別變數,就要在,cpp檔案的...
phpcms 開發的一些總結
1 在模板中擷取內容的長度進行顯示 class xgwz href class xg 上一條 strong a href class xg 下一條 strong a href class more 返回列表 src new more3.png width 16 height 16 a div 3 列...