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. Shell
和Main
进程的通讯,可使用管道来实现.b. Main
(具体为播放器控件)和Player
则使用管道和共享内存两种方式播放器的控制逻辑使用管道来实现,而视频帧的数据回调则使用共享内存来实现.
该方案为在使用其他软件时的观察和思考,包括一些利用ChatGPT4.0得到的信息,仅为个人理解.软件及库不限于:VS2022,CEFSharp,网易云音乐,微信等.
标签:
-
关于大型客户端项目的思考 环球资讯
大型客户端项目在使用过程中一般会面临几个问题:a **启动慢**b **运
-
视焦点讯!怎么下载小说TXT_怎么下载小说
1、头条可以离线下载小说。2、1-打开头条APP选择首页。3、2-然后在首页
-
苹果Vision Pro:进入空间计算时代的革命性头显设备|天天速读
【ITBEAR科技资讯】6月7日消息,苹果公司在北京时间6月6日凌晨的全球开
-
面对GPT,教育也到了转变之时
随着ChatGPT的火爆,其对教育理念和方式的冲击引起了广泛讨论,也让人
-
环球新动态:深南电A:目前虚拟电厂相关事项对公司生产经营影响较小
每经AI快讯,有投资者在投资者互动平台提问:公司是否参与虚拟电厂方面
-
4强决出2席!阿尔卡拉斯赛后举动极自信,德约科维奇发言吐露不足|天天快播
从半决赛表现来看,德约科维奇的状态可谓爆棚,即将进行的青春对决,未
-
谁在给野蛮装修“打掩护” 环球播报
雨馨窗改门砸断抗震圈梁、跃层承重楼板凿出大窟窿、墙体恢复只用轻体砖
-
长安汽车“枪口对内”
6月6日,网上流出一份《致长安汽车采购部的申诉函》,长安汽车的供应商
-
博力威06月06日被沪股通减持6.55万股
06月06日,博力威被沪股通减持6 55万股,最新持股量为41 77万股,占公
-
华宝新能:Jackery电小二销量和销售额位于户外电源品类第一|滚动
华宝新能:Jackery电小二销量和销售额位于户外电源品类第一:华宝新能
-
每日速读!超过112万尾珍稀特有鱼类在长江上游被放归
超过112万尾珍稀特有鱼类在长江上游被放归6月6日,超过112万尾长江上游
-
安德烈·梅尔尼琴科_环球热消息
1、安德烈·梅尔尼琴科(AndreyMelnichenko),男,俄罗斯最大的独立煤
-
邓禄普轮胎怎么样代理_邓禄普轮胎怎么样
1、邓禄普于19世纪后期起源于ying国,后被ribeng控股(ying国佬什么好
-
天天百事通!04月05日芜湖前往临汾出行防疫政策查询-从芜湖出发到临汾的防疫政策
04月05日芜湖前往临汾出行防疫政策查询-从芜湖出发到临汾的防疫政策(
-
法网今日看点:德约和阿卡能否顺利会师?萨巴握手事件后恐再遇麻烦!_全球观焦点
今天,法网将正式进入四分之一决赛的争夺,男单夺冠两大热门阿尔卡拉斯
-
美股异动丨超微半导体涨超3%目标价大幅上调至150美元-当前播报
美股异动丨超微半导体涨超3%目标价大幅上调至150美元:超微半导体(AMD
-
fake news 的中文什么意思_fakenews什么意思翻译成中文
想必现在有很多小伙伴对于fakenews什么意思翻译成中文方面的知识都比较
-
低成本小哥cos《暗黑4》莉莉丝:吐司串串儿作长角|看热讯
《暗黑破坏神4》现已正式发布,超会整活的泰国低成本小哥再次展现了自
-
苹果手机第一次充电的正确方法_全球热消息
苹果手机第一次充电的正确方法第一次充电的方法很重要,它可能会影响电
-
全球今头条!2018年5月21日至今天多少天_2017年5月21日到今天有多少天
2017年5月21日到2020年1月1日一共有956天(注:包含起止日期二天在内)
-
泡萝卜条怎么腌好吃又脆_泡萝卜条
相信目前很多小伙伴对于泡萝卜条都比较感兴趣,那么小搜今天在网上也是
-
【天天聚看点】閽荤煶杩锋儏 瀹夊崜_钻石迷情 Windows phone手机游戏
当前大家对于钻石迷情Windowsphone手机游戏都是颇为感兴趣的,大家都想
-
甜梦文库小腹鼓胀控制排泄_甜梦文库
1、比如说顶点小说,绝对没弹妬广吿。2、超好的,我向伱保正。3、「^_^
-
欧盟延长进口乌克兰农产品限制措施
欧盟委员会6月5日发表声明说,为继续保护欧盟成员国的农产品市场,将当
-
今日要闻!大名城(600094.SH):定增申请获得上交所审核通过
格隆汇6月6日丨大名城(600094)(600094 SH)公布,公司于2023年6月6日收
-
无论什么情况,辞职都要谨慎,看不懂这六点,会错过晋升机会
辞职是每个在职人员都会面对的一个问题,无论是困难、不满意的工作环境
-
魔兽争霸达拉然圣骑士训练师在哪-达拉然圣骑士训练师位置攻略-环球精选
魔兽争霸是一款非常好玩的角色扮演游戏,很多玩家想知道魔兽争霸达拉然
-
焦点快报!DC-DC转换器的输出电压调节模式
DC-DC转换器的输出电压调节模式- 引言:PWM和PFM是两种DC-DC转换器
-
中金:首予珍酒李渡(06979)“跑赢行业”评级 目标价11港元 焦点消息
智通财经获悉,中金发布研究报告称,首予珍酒李渡(06979)“跑赢行业”
-
公募REITs市场估值理性回归 长期配置价值已显
近期公募REITs市场波动幅度加大,部分项目跌幅较前期有所扩大,引发市