關于大型客戶端項目的思考
a. 啟動慢b. 運行慢c. 穩(wěn)定性低基于以上問題進行一些思考,最終總結(jié)出該方案.
(資料圖)
解決方案當項目過大時,需要加載的程序集也越多,對應程序需要啟動的時間也越長,如果在這個時候有一個啟動的過渡頁,從使用的角度看,能在啟動后快速看到程序反應,則在某種程度上加快了程序的啟動速度.
以VS2022為例,在啟動的時候并不是第一時間去加載整個IDE窗口,而是使用了一個過渡,先啟動一個啟動頁再過渡到導航窗口,來選擇要編輯的項目,再而去加載整個編輯界面.即:啟動窗口->導航窗口->編輯窗口
在啟動窗口
時,可以看到VS主進程并沒有真正啟動,而是到導航窗口
時才啟動,這個時候也只是啟動了7個子進程,直到編輯窗口
時,以我的設置為例子進程數(shù)運行到13個,達到真正使用的狀態(tài).那么退回來講,如果在啟動時,直接把這13個子進程的事情合并到一個主進程來做,可想而知,啟動速度會慢多少倍而這個情況正是我們在開發(fā)客戶端項目時使用的邏輯.所以以此為鑒,要做的就是拆分主進程.
從穩(wěn)定性來說,不管是VS還是CEFSharp,也都是采用多進程的方法,我在使用VS2022的時候遇到過某個模塊功能崩潰但不影響主功能使用的情況,而CEFSharp中的CefSharp.BrowserSubprocess進程更是為每個頁啟動一個進程來做渲染等工作,好處則是即使其中一個頁面崩潰,也不影響其他頁面.我在開發(fā)過程中集成過好多第三方SDK,不限于騰訊阿里,但都在使用過程中遇到各種問題導致SDK內(nèi)部崩潰,使整個程序崩潰的情況,這些也并不能通過良好的代碼及經(jīng)驗來規(guī)避,只能等待SDK方去解決,但最終不管是體現(xiàn)在領導或用戶方,都是開發(fā)人員來背鍋,那么要怎么甩鍋,我認為依然是多進程.
那說了這么多,多進程真的那么好么?好是真的好,但也要從實際業(yè)務去考慮
優(yōu)點:啟動快,安全性高,穩(wěn)定性高,且可以更好的利用CPU
缺點:啟動進程成本高,進程間通訊成本高
所以并不能一味的去靠多進程,如果存在大的模塊或者第三方服務時,才應該去考慮多進程實現(xiàn).
多進程架構(gòu)實現(xiàn)說了這么說,那么以一個調(diào)用阿里播放器SDK的程序為例來進行一個實現(xiàn).
Shell進程:展示歡迎頁檢測版本更新當存在版本更新時,直接對主程序集進行更新[主進程也可增加反更新Shell邏輯],增加用戶體驗(傳統(tǒng)做法為,主進程啟動時進行版本檢測,如需要更新時再啟動更新進程)單例啟動控制傳統(tǒng)的單例啟動是控制主進程,一次主進程存在,二次主進程則把啟動參數(shù)拋給一次主進程.而先啟動Shell進程,要做的就是判斷主進程是否存在,如果存在直接把啟動參數(shù)拋給主進程并關閉自己Main進程:程序的主要功能進程,被Shell進行調(diào)起,可接收Shell拋來的啟動參數(shù)集成播放器控件(該控件和播放器SDK完全解耦,負責渲染SDK回調(diào)的視頻數(shù)據(jù)和發(fā)送控制命令)
Player進程:實例播放器SDK,并把SDK中的視頻數(shù)據(jù)回調(diào)給播放器控件
技術實現(xiàn)關于進程間通訊,這里主要使用兩種通訊方式,管道和共享內(nèi)存(C#中SharedMemoryManager庫)a. Shell
和Main
進程的通訊,可使用管道來實現(xiàn).b. Main
(具體為播放器控件)和Player
則使用管道和共享內(nèi)存兩種方式播放器的控制邏輯使用管道來實現(xiàn),而視頻幀的數(shù)據(jù)回調(diào)則使用共享內(nèi)存來實現(xiàn).
該方案為在使用其他軟件時的觀察和思考,包括一些利用ChatGPT4.0得到的信息,僅為個人理解.軟件及庫不限于:VS2022,CEFSharp,網(wǎng)易云音樂,微信等.
關鍵詞:
您可能也感興趣:
今日熱點
為您推薦
機票里面包含保險嗎?飛機保險有必要買嗎?
遼寧擴大緩繳社保費政策實施范圍 補繳期間免收滯納金
近十年財險業(yè)務快速發(fā)展 財產(chǎn)保險業(yè)風險保障水平不提升
更多
- 每日關注!迪進國際為SkyCloud引入創(chuàng)新功能,以增強工業(yè)監(jiān)控解決方案
- Kioxia開始運營兩個新的研發(fā)機構(gòu)
- 僅使用一個電感即可設計出更緊湊的電源
- e絡盟開售來自意法半導體和伍爾特電子的1kW高效模擬無橋PFC
- 米爾新品!國產(chǎn)高安全性車規(guī)級平臺,芯馳D9多核Cortex-A55核心板
- 運用升降壓充電芯片IU5180實現(xiàn)Type-c給1-4節(jié)鋰電池快速充電_焦點
- 引領邊緣計算創(chuàng)新,英特爾正式發(fā)布公測版“英特爾? Develop...
- 浪潮信息發(fā)布G7系列SAP HANA一體機,挑戰(zhàn)內(nèi)存計算極限性能_...
排行
- 拒絕杜蘭特,女星霉霉為何會選擇和湖人小里弗斯約會?-當前短訊
- 兩部門印發(fā)辦法明確 消防員面向社會公開招錄
- 低價出售410萬旅客信息?12306回應:為第三方泄漏
- 2019年這些新規(guī)將落地 又一次普惠“加薪”
- 北京8家醫(yī)院試點將推錯峰就診 率先開展“治堵”
- 數(shù)字化的城商行們怎么樣了?數(shù)字化轉(zhuǎn)型背后的故事
- 四川省稅務系統(tǒng)將推出10大類舉措服務納稅人、繳費人
- 長三角禁限塑新規(guī)實施尚存3個堵點 仍需多方合力推進
- 中國鐵建高溢價溫州奪地 去年毛利率低于行業(yè)約10個百分點
- 推行郵件快件包裝“綠色革命” 從根源上解決問題
最近更新
- 關于大型客戶端項目的思考
- 中醫(yī)界丨陳岷:守好國粹文化,才配叫炎黃子孫!
- 簡一集團&羅曼企業(yè)總部大樓奠基儀式暨禪西都市產(chǎn)業(yè)示范區(qū)發(fā)布...
- 地產(chǎn)股延續(xù)強勢 電力股跌幅居前丨就市論市
- 世界微資訊!眾泰汽車收關注函,要求說明*ST龐大是否向公司輸...
- 山東或?qū)⒂⒌掳钭C券 天天快播報
- SNEC圓滿收官,瑞智中和柔性跟蹤光伏支架系統(tǒng),期待與您再相聚!
- 愛立信發(fā)布國內(nèi)首個5G井蓋基站 推動中國5G網(wǎng)絡建設走向縱深
- 焦點熱訊:勞模風采 | 梁浩:熱心公益 大愛無聲
- 垃圾可兌換禮品!八里溝“綠色銀行”掀起文明出游新風尚-天天...
- 辯論賽加分項是什么(辯論賽加分項)
- 天天即時:金額大寫轉(zhuǎn)換器在線轉(zhuǎn)換(110.000000大寫是多少元)
- 熱頭條丨體現(xiàn)執(zhí)行力強的例子(體現(xiàn)執(zhí)行力的字)
- 雨點兒落在窗玻璃上的情景寫一段話(團隊列名法最適用的情景...
- wy是啥縮寫(wyq縮寫是什么意思)
- 塔讀文學網(wǎng)作者收入(塔讀文學網(wǎng)怎么樣)
- YiGou Merchant高質(zhì)量發(fā)展闊步向前
- 湖人3消息!老詹下家更新,不愿提前續(xù)約濃眉,拉塞爾仍可能留...
- 當前聚焦:3年1.6億遭拒!濃眉或?qū)㈦x隊?詹姆斯是重要原因,...
- 沃格爾:我在湖人只是某人的替罪羊,相信能和KD帶領太陽成就...
- 當前最新:曝湖人新星約會霉霉!里夫斯沖擊1億肥約+收獲真愛...
- 環(huán)球快資訊丨拒絕2.1億!歐文喊話獨行俠,不給2.7億就免談,...
- 拒絕杜蘭特,女星霉霉為何會選擇和湖人小里弗斯約會?-當前短訊
- 為什么這么多大宅用戶都選擇“巴法祿水牛空調(diào)”?
- csgo開箱子概率是多少?csgo開箱爆率介紹
- 四川成都有什么好的小吃-每日消息
- 天天短訊!都說宜春人愛吃臘肉,那么臘肉怎么做的呢?
- 臘肉怎么做的晶瑩剔透?|世界熱推薦
- 焦點日報:魯山攬鍋菜那家好吃?
- 每日快看:sumif函數(shù)詳解_sumif函數(shù)的含義
今日要聞
- 簡一集團&羅曼企業(yè)總部大樓奠基儀式暨禪西都市產(chǎn)業(yè)示范區(qū)發(fā)布會成功舉辦
- SNEC圓滿收官,瑞智中和柔性跟蹤光伏支架系統(tǒng),期待與您再相聚!
- 多源固廢協(xié)同處理+低碳循環(huán):北科蘊宏示范“無廢城市”發(fā)展路徑
- YiGou Merchant高質(zhì)量發(fā)展闊步向前
- 為什么這么多大宅用戶都選擇“巴法祿水??照{(diào)”?
- 關于大型客戶端項目的思考
- 拒絕杜蘭特,女星霉霉為何會選擇和湖人小里弗斯約會?-當前短訊
- 垃圾可兌換禮品!八里溝“綠色銀行”掀起文明出游新風尚-天天看點
- 塔讀文學網(wǎng)作者收入(塔讀文學網(wǎng)怎么樣)
- 【讀財報】5月上市公司定增動態(tài):實際募資200.65億元,北汽藍谷和山西焦煤募資額居前-即時