关于大型客户端项目的思考

2023-06-07 12:51:53 来源: 博客园

大型客户端项目在使用过程中一般会面临几个问题:

a. 启动慢b. 运行慢c. 稳定性低基于以上问题进行一些思考,最终总结出该方案.


(资料图片)

解决方案

当项目过大时,需要加载的程序集也越多,对应程序需要启动的时间也越长,如果在这个时候有一个启动的过渡页,从使用的角度看,能在启动后快速看到程序反应,则在某种程度上加快了程序的启动速度.

以VS2022为例,在启动的时候并不是第一时间去加载整个IDE窗口,而是使用了一个过渡,先启动一个启动页再过渡到导航窗口,来选择要编辑的项目,再而去加载整个编辑界面.即:启动窗口->导航窗口->编辑窗口启动窗口时,可以看到VS主进程并没有真正启动,而是到导航窗口时才启动,这个时候也只是启动了7个子进程,直到编辑窗口时,以我的设置为例子进程数运行到13个,达到真正使用的状态.那么退回来讲,如果在启动时,直接把这13个子进程的事情合并到一个主进程来做,可想而知,启动速度会慢多少倍而这个情况正是我们在开发客户端项目时使用的逻辑.所以以此为鉴,要做的就是拆分主进程.

从稳定性来说,不管是VS还是CEFSharp,也都是采用多进程的方法,我在使用VS2022的时候遇到过某个模块功能崩溃但不影响主功能使用的情况,而CEFSharp中的CefSharp.BrowserSubprocess进程更是为每个页启动一个进程来做渲染等工作,好处则是即使其中一个页面崩溃,也不影响其他页面.我在开发过程中集成过好多第三方SDK,不限于腾讯阿里,但都在使用过程中遇到各种问题导致SDK内部崩溃,使整个程序崩溃的情况,这些也并不能通过良好的代码及经验来规避,只能等待SDK方去解决,但最终不管是体现在领导或用户方,都是开发人员来背锅,那么要怎么甩锅,我认为依然是多进程.

那说了这么多,多进程真的那么好么?好是真的好,但也要从实际业务去考虑

优点:
启动快,安全性高,稳定性高,且可以更好的利用CPU
缺点:
启动进程成本高,进程间通讯成本高

所以并不能一味的去靠多进程,如果存在大的模块或者第三方服务时,才应该去考虑多进程实现.

多进程架构实现

说了这么说,那么以一个调用阿里播放器SDK的程序为例来进行一个实现.

Shell进程:展示欢迎页检测版本更新当存在版本更新时,直接对主程序集进行更新[主进程也可增加反更新Shell逻辑],增加用户体验(传统做法为,主进程启动时进行版本检测,如需要更新时再启动更新进程)单例启动控制传统的单例启动是控制主进程,一次主进程存在,二次主进程则把启动参数抛给一次主进程.而先启动Shell进程,要做的就是判断主进程是否存在,如果存在直接把启动参数抛给主进程并关闭自己Main进程:

程序的主要功能进程,被Shell进行调起,可接收Shell抛来的启动参数集成播放器控件(该控件和播放器SDK完全解耦,负责渲染SDK回调的视频数据和发送控制命令)

Player进程:

实例播放器SDK,并把SDK中的视频数据回调给播放器控件

技术实现

关于进程间通讯,这里主要使用两种通讯方式,管道和共享内存(C#中SharedMemoryManager库)a. ShellMain进程的通讯,可使用管道来实现.b. Main(具体为播放器控件)和Player则使用管道和共享内存两种方式播放器的控制逻辑使用管道来实现,而视频帧的数据回调则使用共享内存来实现.

其他

该方案为在使用其他软件时的观察和思考,包括一些利用ChatGPT4.0得到的信息,仅为个人理解.软件及库不限于:VS2022,CEFSharp,网易云音乐,微信等.

关键词:

精选 导读

海关总署:今年前5个月我国民营企业进出口比重超五成

据海关统计,今年前5个月,我国民营企业进出口比重超五成。前5个月,民

发布时间: 2023-06-07 12:29
要闻   2023-06-07

双枪科技:截至2023年5月31日,公司股东数为9698户

双枪科技(001211)06月07日在投资者关系平台上答复了投资者关心的问题。

发布时间: 2023-06-07 12:23
要闻   2023-06-07

全球球精选!卡普空更新游戏白金销量榜 《怪物猎人:崛起》

今日(6月7日),卡普空公布更新了游戏白金销量榜单,数据截止到2023年

发布时间: 2023-06-07 11:38
要闻   2023-06-07

中俄举行第六次联合空中战略巡航 专家解读|全球微头条

中国国防部6日发布消息称,根据中俄两军年度合作计划,双方6日在日本海

发布时间: 2023-06-07 11:35
要闻   2023-06-07

焦点关注:雾的形成原因是液化_雾的形成原因

1、雾和云都是由浮游在空中的小水滴或冰晶组成的水汽凝结物,只是雾生

发布时间: 2023-06-07 11:30
要闻   2023-06-07

热点 推荐

关于大型客户端项目的思考

大型客户端项目在使用过程中一般会面临几个问题:a **启动慢**b **运

发布时间: 2023-06-07 12:51
IT   2023-06-07

晶科能源N型TOPCon 电池优势明显

优势一:效率高。N型硅片的少数载流子寿命比P型硅片高至少一个数量级,将会极大提升电池的开路电压和短路电流,带来更高电池转化效率; 晶

发布时间: 2023-06-07 12:52
财经   2023-06-07

长安汽车回应网传“克扣10%货款”:不实 已报案!

长安汽车回应网传“克扣10%货款”:不实已报案!

发布时间: 2023-06-07 12:23
国内   2023-06-07

艺术 | 程韵秋声扬霏蕤 雏凤清声话传承 全球快报

孟夏微风暖京城,皮黄雅韵动心弦。6月3日至4日,“秋声霏扬”北京京剧

发布时间: 2023-06-07 12:28
科技   2023-06-07

公司有参与基于脑接口技术的研发吗?南京熊猫:有参与项目研

每经AI快讯,有投资者在投资者互动平台提问:公司有参与基于脑接口技术

发布时间: 2023-06-07 12:32
科技   2023-06-07

海关总署:今年前5个月我国民营企业进出口比重超五成

据海关统计,今年前5个月,我国民营企业进出口比重超五成。前5个月,民

发布时间: 2023-06-07 12:29
要闻   2023-06-07

圣晖集成6月7日快速回调 全球关注

以下是圣晖集成在北京时间6月7日11:13分盘口异动快照:6月7日,圣晖集

发布时间: 2023-06-07 12:22
IT   2023-06-07

当前报道:彻底实现本土化 红杉全球宣布三大区域将各自完全

6月6日晚,红杉资本正式宣布将进一步拥抱本地化策略,在2024年3月31日

发布时间: 2023-06-07 12:28
国内   2023-06-07

双枪科技:截至2023年5月31日,公司股东数为9698户

双枪科技(001211)06月07日在投资者关系平台上答复了投资者关心的问题。

发布时间: 2023-06-07 12:23
要闻   2023-06-07

桂发祥董秘回复:公司不存在您所述事项

桂发祥(002820)06月07日在投资者关系平台上答复了投资者关心的问题。

发布时间: 2023-06-07 12:17
IT   2023-06-07

天天时讯:市生态环境局开展六五宣传进校园活动

6月5日是环境日。当天下午,焦作市生态环境局紧扣“建设人与自然和谐共

发布时间: 2023-06-07 12:15
国内   2023-06-07

滞困异星黎明POWER-OVERWHELMING种子是什么

在游戏《滞困:异星黎明(Stranded:AlienDawn)》中,这个地图的种子是

发布时间: 2023-06-07 11:35
科技   2023-06-07

全球球精选!卡普空更新游戏白金销量榜 《怪物猎人:崛起》

今日(6月7日),卡普空公布更新了游戏白金销量榜单,数据截止到2023年

发布时间: 2023-06-07 11:38
要闻   2023-06-07

世界微动态丨老人捡废品堆墙脚 邻居苦不堪言

老人捡废品堆墙脚邻居苦不堪言

发布时间: 2023-06-07 11:55
IT   2023-06-07

金港路办事处:防灾减灾 从我做起

2023年5月12日是第十五个全国防灾减灾日,今年的主题是“防范灾害风险

发布时间: 2023-06-07 11:37
国内   2023-06-07

环球即时:侯友宜66岁生日愿望 效忠“中华民国”

今天是中国国民党新北市长侯友宜66岁生日,对于生日愿望,侯友宜表示,

发布时间: 2023-06-07 11:30
科技   2023-06-07

中俄举行第六次联合空中战略巡航 专家解读|全球微头条

中国国防部6日发布消息称,根据中俄两军年度合作计划,双方6日在日本海

发布时间: 2023-06-07 11:35
要闻   2023-06-07

【环球报资讯】“新国剧”小戏给原创话剧舞台带来的启示

话剧《黄粱一梦》剧照近来在上海的话剧舞台上,一部70分钟的“小戏”《

发布时间: 2023-06-07 11:32
科技   2023-06-07

全国射击锦标赛 张琼月射落女子10米气步枪金牌-每日热文

张琼月射落女子10米气步枪金牌(主题)中国体育报讯6月6日,2023年全国

发布时间: 2023-06-07 11:22
IT   2023-06-07

快看点丨安徽高标准打造羚羊工业互联网平台

安徽高标准打造羚羊工业互联网平台(主题)“以前的数据记录都是依靠人

发布时间: 2023-06-07 11:36
国内   2023-06-07