新版QQ的前端优化真牛逼,堪称electron内存优化的教科书

https://mp.weixin.qq.com/s/OQA7sUqqC_2yYRPhmxnotA

1 Like

electron 负责UI
C++ 负责数据.

就这样, UI层还要极尽所能的压缩内存,减少图片尺寸,减少内存泄露…

而这一切都是为了给前端效率让路…

现在码农的地位这么低吗? :rofl: :rofl:

2 Likes

做前端也是码农啊。一切围绕着需求出发。一切码农都是为产品服务。
我瞎猜是有一定政治压分和任务,国产Linux上客户端要做好。还有就是新功能在旧框架开发有压力了。

软件越做做臃肿,都不把用户的电脑当回事了。

可能在互联网程序员的眼里,用户的电脑就是个广告终端,怎么方便显示广告方便收钱怎么来。

不是程序员的锅,每个码畜都曾经有一个小而美的梦。
程序员也希望web一个团队、Windows一个团队、macOS一个团队、安卓一个团队、iOS一个团队、小程序一个团队,这样岗位多得多。

但是老板希望降低成本、运营希望提高效率,于是对码畜的要求就从“专精一个平台”变成“跨平台开发”。

开发人数变少,也没时间精力对每个平台精细调较,用户体验只能为快速迭代让路了。

5 Likes

软件跨平台混合开发确实是如今的一个大趋势,节省开发成本,统一了各类终端上的使用体验,但是就目前的情况来看,跨平台开发的软件在性能上已经不再让人觉得难以接受了,大部分性能要求不太高的软件都是可以采用这种技术方案来开发的,软件行业跟历史上很多国家的发展历程一样,分久必合合久必分

可以预见将来QQ会加入更多更复杂、更炫酷的内容,比如虚拟形象。在权衡之下才最终决定更换架构,绝不只是为了眼下少用两个程序员。重启的底层如果优化不好,在上面作画的难度可想而知,后续也就无法完成重启的想法。

我觉得你可能想太多了。以我对腾讯的了解,他们基本上不会搞什么领先的技术和应用。一般都是别人怎么干,他们怎么抄,最多做点微创新。

把 qq 改成 electron 最大的原因还是为了节省码农的成本。c++ 程序员非常贵,而 web 码农则相对便宜。从生产率上面看,c++ 程序员干一个月的事情,可能 web 码农只要干半天就搞定了。按这个算法来算,c++ 程序员简直是天价。腾讯肯定是为了省这个钱,才把 qq 从原生换成了 electron.

腾讯多有钱大家都知道吧。我不信他们连为每个平台开发一个原生的 qq 都支付不起。原因很明显,就是他们觉得那样会让他们多花钱少赚钱。他们才不在乎用户的感受呢。

借这个 thread, 我们来讨论一下国内还有什么聊天工具可用吧。

支付宝其实可以聊天的,但是没有 pc 版。而且上面一般都是真名,拿来聊天有点奇怪。

我也觉得你可能想少了,总是觉得腾讯没有技术

:upside_down_face:多个"性能要求不太高的软件", 一起开起来, 就没有"不再让人觉得难以接受了"

浏览器套壳和原生差的可不是一点半点.

你能忍受notepad, explorer…这种软件们也都是浏览器套壳? 而且是不同的版本Chrome? 现在已经有这种趋势了

不要总想着用户买来电脑就开你一个应用, 别的啥也别干了

多个浏览器套壳的开销, 都能超过直接开虚拟机了, 谈优化已经没啥意义了, 不如都只win搞原生, wine和Parallels能解决大多数问题, 剩下的, 还有Virtualbox们

你说的多个套壳应用使用多个不同版本浏览器也确实是个问题,内置的浏览器也许以后可以像虚拟机一样普及,每个操作系统直接安装一个,而且把性能优化到极致,那就完美了

只做Windows原生,这不是把非 Windows 用户拒之门外吗?用 Wine 和虚拟机可以说是无奈之举。

多个electron一开, 开销更大, 体验更差.
难说怎么用才无奈.
用虚拟机还能实现数据隔离, 快照, 备份, 多开, 快速启动, 多系统共享, 甚至多系统同时访问…玩法不比electron多多了?
如果你能接受WSL, WSA, Docker, Java虚拟机(JRE)这些玩意儿, 为什么不接受wine(LSW,exeRunningEnvironment)和虚拟机(AnySAny), 不过是大一点的运行库嘛
用"electron"的理由不就是反正大家内存够大, 硬盘够大么?
那干嘛不直接上虚拟机, 虚拟机系统内存消耗才1G啊(win7), 少开三四个electron应用不就省回来了?更别说wine了, 之前wineQQ不比这electron玩意儿得劲?

1 Like

Wine 的问题是不省心,小毛病需要你去调整,大毛病就是直接装不上。

虚拟机的主要问题是消耗性能。处理器占用上去后宿主机也会卡。图像性能也不好,用着比较卡,除非你直通显卡或者弄显卡虚拟化。内存分走了最算虚拟机没用完,宿主机也没法用。虚拟机装整个系统,也要占空间。笔记本用的话,电量流失还变快。

和前面两种技术比,Electron 好多了。

Win 7 停止更新了,不安全。Win10 最低要求 2G 内存(其实我用 4G),照你的说法可以开 6~8 的 Electron 软件了。

省心?装不上只是一下子的事, 占用大可是一直有的事
显卡?这些小玩意儿哪个是显卡占用大的?显卡占用大的, 谁家用electron?非要用也有显卡直通的方案
内存?这些小玩意儿哪个是内存占用大的?内存占用大的, 谁家用electron?非要用也有动态分配的方案(甚至1G的系统占用都是高估的, 关闭不必要的服务, 待机才~500M)
占空间?我win7母盘的vhd才5G, 虚拟机和实体机公用, 四舍五入跟不要空间一样
电量流失?这我就不知道了,早笔记本当台式用了
不安全?? 跟虚拟机比安全, 咋想的?
    来源可靠的软件, 我虚拟机甚至杀毒都不需要开的.
    什么软件能导致不安全? 我何不直接上另一个虚拟机.
停止更新又怎么了, windows10/11的更新除了造成改个设置都要到处找以外没有任何感知. 等杀毒软件装不上去了再说不安全也不迟.
跨平台的方案那么多, 选electron是为啥都清楚, 100%肯定不是为了性能.
无标题
你说这些玩意儿们的功能非得需要后台开一个浏览器才能搞定?
明明是不需要软件在浏览器里就能搞定吧
对比一个: uTorrent
甚至不需要GUI常开, 需要的时候随便一个浏览器打开 Web UI就行, electron和这能比?

腾讯的技术基本上都忙着做 云服务,推送广告,平台推荐,客户端开发什么的早就不是投资大头了,你看看财报的开发支出就知道了

尤其是设定的目标,整体占用300M,要是让用户自己选择开启哪些广告,不用了什么xx秀,xx星之类的,150M可不可以?100M左右有没有希望?如果没有云监控客户端状态,会不会能更少?问题是它会让你选择么?要不是最近Unity收费吃相难看,恐怕Unity的加入也要提上日程。那体积和内存呵呵~

更何况第三方有用户测试,打开直接就内存leak到600M左右~ 可能正式版会好些,但300M也不是什么值得吹嘘的事情。让用户吃翔还要吹嘘我们这翔真Tm的香,这叫啥事啊~

我的QQ electron体验就是:
消息看着看着,就全部变成空白了,所有消息内容都不加载了。只有重启QQ才能解决。
一天反复无数次,直到我放弃卸载。

我们前端也是码农啊,而且性能瓶颈目前主要是前端的不同环境

我没这个问题。