小弟做c++伺服器差不多一年了,用ace框架的,還沒什麼信心,還很菜,請教各位大神如何提升進階啊?
01-21
自己實現一個網路框架試試看?第一個階段:
搞清楚Tcp和Udp的區別,知道Tcp的各種控制包是如何起作用的,現在Tcp的用處比較大
搞清楚非同步Socket網路操作下各種返回值的含義。 熟練使用套接字編程。搞清楚Epoll事件輪訓搞清楚Epoll ET的用法,儘管大家都不建議使用ET自己實現定時器 紅黑樹 小根堆 時間輪 常見演算法都要熟悉
優化內存Copy和系統調用 並調試性能的差異搞清楚常見的協議 從Telnet Http Dns Smtp Icmp等等協議實現多線程框架,並可以在Epoll EventLoop線程切換等等了解linux fork實現多進程框架,了解驚群等等和解決方法第二個階段:
如何優化和解除各種耦合? 程序耦合和編譯器耦合?比如當你這個底層庫需要改動的時候如何可以減少業務代碼的改動,或者減少對此依賴的庫的編譯。謝邀~~
但這問題暫時不好回答,因為提問的目標不明確。C++伺服器,要進階,我想知道你的目標是啥?
是自己實現網路引擎/RPC框架?還是使用C++開發基礎服務伺服器/業務邏輯伺服器/web CGI伺服器,不論是用什麼RPC框架?還是深入使用ACE框架進行開發?因為不同的細分目標道路越到後面越不相同。陳果果果果果棟 回答的是第一種情況,但我所了解到的,大部分人都是第二種情況。
還有,沒有信心,是為什麼沒有?是哪裡遇到問題或者瓶頸?總有原因才會讓你感到沒有信心。
如何提升進階?目前哪裡遇到了瓶頸,主要是哪方面上不去,想提升?泛泛而答的話,東西太多太瑣碎。我就不說了。等你update。ACE,學之者生,用之者死!如題,建議Boost.asio做項目!
建議轉 asio
cppcon里有人說在弄coroutine,性能超強。
沒什麼信心的原因是因為你在用ACE吧…
ACE過於龐當了建議看看boost里的asio
別聽他們瞎說。
看書打基礎才是真正的晉陞之道。哥們 你扣扣多少啊 請教下ACE
推薦閱讀:
※計算機專業C++應該怎麼教?
※計算機中缺失MSVCP120D.dll和MSVCR120D.dll怎麼解決?
※多幀圖片的數據存儲的問題?
※從項目管理上來說,C++ 是否適合做大的項目?
※學編程主要是學習什麼(學習重點是什麼?)