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