Re: [問題] Server的架構

看板Programming作者時間18年前 (2007/09/09 14:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
LINUX ? 可以考慮使用 epoll 或是libevent , http://rd-program.blogspot.com/2007/04/concurrency-programming.html 有提到一些相關 的文章或是參考這篇很有名的文件 http://www.kegel.com/c10k.html ,裡面有提到一些 比較... win32 就不用質疑囉! 一定是iocp , 網路上有很多相關的範例 thread & fork 各有他的優缺點,但若要提到高負載與效率,lwp 才是趨勢,可以參考erlang 這類的語言,或是 一些event base programming,這應該是現在的趨勢,如果不想研究太多 東西,建議你可以參考apache mina http://mina.apache.org/ 或是c++ 裡ace 這類的東西 "Victor" <StubbornLin.bbs@ptt.cc> 撰寫於郵件新聞:4VkDc6$8mU@ptt.cc... > 我最近正在考慮寫一個Server > > 目前有考慮三種架構 > > 1.輪詢式的架構 > 也就是單一迴圈 > 不停的更新所有連線的狀態並做出回應 > > 2.MultiThread > 每個連線都由一個Thread負責 > > 3.混合式 > 混合輪詢和MultiThread式,每個Thread負責一定數量的連線 > > 目前我只有寫過輪詢式的,其它兩種都沒寫過 > > 考慮到效能,輪詢式的在連線數很多時,很明顯的一個問題就是 > 當連線數到一定數量時,可能會變得很沒效率 > 每個連線如果花1ms,1000個連線就是1秒 > > 但是如果以MultiThread來執行,可以充份利用CPU的資源 > 可是這又帶來另一個問題,由於我對Thread的成本不太了解,用起來還是會怕怕的 > > * 其中一個問題就是,我不了解開一個Thread到底需要多少成本? > > 接著,我想到如果1000個連線就要開1000個Thread > 而Thread的成本如果讓人難以接受的話,那可能就得考慮第三種 > 混合式的,每個Thread負責一定數量的連線 > 但是又帶來另一個問題就是設計上會變得有點複雜 > > ---------------------------------------------------------------- > > 除此之外還有另一個我不了解的地方,就是 > > * 多核心的CPU到底對效能上的改進有多少幫助? > > 最近多核心的CPU在市面上似乎成為主流,但是我一直很好奇 > > * 就運作上,到底能將工作分配給不同核心做到什麼地步? > > 以上,是我的問題 > > -- > VICTOR工作室 | PTT遊戲設計版隆重開幕! > > | 不管是新手老手,程式美工音樂企劃.... > URL : http://www.kinmen.info/vic/ | 都歡迎來遊戲設計版參與討論 > XD > | 戰略高手> > C/C++ | GameTopics> > Visual Basic 6.0 | GameDesign > > -- > ※ 發信站: 批踢踢實業坊(ptt.cc) > ◆ From: 59.116.64.77 > Tiberius:man select > 59.126.63.79 09/04 21:13 > Tiberius:然後你是不是又要貼了文就不理啦 :p > 59.126.63.79 09/04 21:13 >
文章代碼(AID): #16uumX00 (Programming)
文章代碼(AID): #16uumX00 (Programming)