小明永久免费大陆在线观看-小明永久免费视频-小明永久视频免费播放-小嫩妇好紧好爽再快视频-小嫩嫩12欧美-小日本xxx

首頁 資訊 > 業(yè)界 > 正文

關(guān)于大型客戶端項(xiàng)目的思考

大型客戶端項(xiàng)目在使用過程中一般會面臨幾個問題:

a. 啟動慢b. 運(yùn)行慢c. 穩(wěn)定性低基于以上問題進(jìn)行一些思考,最終總結(jié)出該方案.


(資料圖)

解決方案

當(dāng)項(xiàng)目過大時,需要加載的程序集也越多,對應(yīng)程序需要啟動的時間也越長,如果在這個時候有一個啟動的過渡頁,從使用的角度看,能在啟動后快速看到程序反應(yīng),則在某種程度上加快了程序的啟動速度.

以VS2022為例,在啟動的時候并不是第一時間去加載整個IDE窗口,而是使用了一個過渡,先啟動一個啟動頁再過渡到導(dǎo)航窗口,來選擇要編輯的項(xiàng)目,再而去加載整個編輯界面.即:啟動窗口->導(dǎo)航窗口->編輯窗口啟動窗口時,可以看到VS主進(jìn)程并沒有真正啟動,而是到導(dǎo)航窗口時才啟動,這個時候也只是啟動了7個子進(jìn)程,直到編輯窗口時,以我的設(shè)置為例子進(jìn)程數(shù)運(yùn)行到13個,達(dá)到真正使用的狀態(tài).那么退回來講,如果在啟動時,直接把這13個子進(jìn)程的事情合并到一個主進(jìn)程來做,可想而知,啟動速度會慢多少倍而這個情況正是我們在開發(fā)客戶端項(xiàng)目時使用的邏輯.所以以此為鑒,要做的就是拆分主進(jìn)程.

從穩(wěn)定性來說,不管是VS還是CEFSharp,也都是采用多進(jìn)程的方法,我在使用VS2022的時候遇到過某個模塊功能崩潰但不影響主功能使用的情況,而CEFSharp中的CefSharp.BrowserSubprocess進(jìn)程更是為每個頁啟動一個進(jìn)程來做渲染等工作,好處則是即使其中一個頁面崩潰,也不影響其他頁面.我在開發(fā)過程中集成過好多第三方SDK,不限于騰訊阿里,但都在使用過程中遇到各種問題導(dǎo)致SDK內(nèi)部崩潰,使整個程序崩潰的情況,這些也并不能通過良好的代碼及經(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):
啟動快,安全性高,穩(wěn)定性高,且可以更好的利用CPU
缺點(diǎn):
啟動進(jìn)程成本高,進(jìn)程間通訊成本高

所以并不能一味的去靠多進(jìn)程,如果存在大的模塊或者第三方服務(wù)時,才應(yīng)該去考慮多進(jìn)程實(shí)現(xiàn).

多進(jìn)程架構(gòu)實(shí)現(xiàn)

說了這么說,那么以一個調(diào)用阿里播放器SDK的程序?yàn)槔齺磉M(jìn)行一個實(shí)現(xiàn).

Shell進(jìn)程:展示歡迎頁檢測版本更新當(dāng)存在版本更新時,直接對主程序集進(jìn)行更新[主進(jìn)程也可增加反更新Shell邏輯],增加用戶體驗(yàn)(傳統(tǒng)做法為,主進(jìn)程啟動時進(jìn)行版本檢測,如需要更新時再啟動更新進(jìn)程)單例啟動控制傳統(tǒng)的單例啟動是控制主進(jìn)程,一次主進(jìn)程存在,二次主進(jìn)程則把啟動參數(shù)拋給一次主進(jìn)程.而先啟動Shell進(jìn)程,要做的就是判斷主進(jìn)程是否存在,如果存在直接把啟動參數(shù)拋給主進(jìn)程并關(guān)閉自己Main進(jìn)程:

程序的主要功能進(jìn)程,被Shell進(jìn)行調(diào)起,可接收Shell拋來的啟動參數(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. ShellMain進(jìn)程的通訊,可使用管道來實(shí)現(xiàn).b. Main(具體為播放器控件)和Player則使用管道和共享內(nèi)存兩種方式播放器的控制邏輯使用管道來實(shí)現(xiàn),而視頻幀的數(shù)據(jù)回調(diào)則使用共享內(nèi)存來實(shí)現(xiàn).

其他

該方案為在使用其他軟件時的觀察和思考,包括一些利用ChatGPT4.0得到的信息,僅為個人理解.軟件及庫不限于:VS2022,CEFSharp,網(wǎng)易云音樂,微信等.

關(guān)鍵詞:

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2023 創(chuàng)投網(wǎng) - www.zhigu.net.cn All rights reserved
聯(lián)系我們:39 60 29 14 2@qq.com
皖I(lǐng)CP備2022009963號-3

2020无码专区人妻系列日韩 | 毛片在线免费观看网站 | 亚洲av色香蕉一区二区 | 成人免费看aa片 | 精品国产黑色丝袜高跟鞋 | 欧美人与动性xxxxx杂性 | 精品国产一区二区三区av性色 | 一本一道av无码中文字幕﹣百度 | 免费夜色污私人影院在线观看 | 免费观看一级特黄欧美大片 | 无码精品人妻一区二区三区人妻斩 | 欧洲多毛裸体xxxxx | 精品无码三级在线观看视频 | 色偷偷噜噜噜亚洲男人 | 亚洲爆乳无码精品aaa片蜜桃 | 久久精品国产亚洲av嫖农村妇女 | 91蜜桃传媒一二三区 | 久久久国产精品 | 69久久精品无码一区二区 | 国产精品熟妇视频国产偷人 | 偷看农村妇女牲交 | 久久久久黑人强伦姧人妻 | 丰满少妇高潮惨叫久久久一 | 99精品一区二区三区无码吞精 | 69久成人做爰视频 | 天天摸夜夜摸摸到高潮 | 少妇被爽到高潮动态图 | 国产成人精品白浆久久69 | 亚洲精品无码久久 | 日韩精品一区二区三区免费视频 | 免费高清a级毛片在线播放 妺妺窝人体色www在线 | 国内精品久久久久影院薰衣草 | 两个人的www免费视频 | 亚洲av永久无码精品无码流畅 | 人妻激情偷乱视频一区二区三区 | 国产农村妇女毛片精品久久 | 欧美丰满大乳高跟鞋 | 边添小泬边狠狠躁视频 | 99久久久国产精品免费蜜臀 | 少妇高潮太爽了在线视频 | av人摸人人人澡人人超碰下载 |