得物:从 Electron 迁移到 Tauri 安装包减 91%内存占用下降 50%CPU 占用下降 63%支持 win7

34 天前
 xiaoqidev

坑很多,过程坎坷,但应该是一劳久益,国内唯一看到的将 Tauri 用于较大商业项目的,原文: https://mp.weixin.qq.com/s/UxmJxU4-fv9GeRxl2fzOGw

12267 次点击
所在节点    分享发现
122 条回复
x4gz
34 天前
我看到一个 App 如果是 Electron 的 除非是不得不用 否则我是不会下载的
WhiskerSpark
34 天前
其实大部分用户不怎么在乎这些点的,连 360 都有大把的人用。
MYDB
34 天前
本来不知道得物是什么,去搜了下,这玩意安装包再小也不会有多少人下载,估计内部空降领导刷 kpi
xxmym
34 天前
写跨端的大部分会写 Node ,不会写 Rust
weixind
34 天前
包体积 7M ,Electron 80M 下降 91.25%。

平均内存占用 249M Electron 497M 下降 49.9%。

平均 CPU 占用百分比 20%,Electron 63.5%下降 63.19%。

没啥参考价值。

1.得物商家端用户量不会很大,ToB 甚至可以点对点兼容。
2. 不利于招聘,会 rust 的前端要比会 node 的前端小一个数量级。
3. Tauri 没有什么 Electron 做不到新 feature 。
4. 我一直不太喜欢用新技术来刷 KPI 的团队和技术选型。

我自己对技术选型有一个要求:贴近业务实际,能够满足当前业务需求,也预留扩展空间,但避免过于激进,确保交付的产品和系统具有实际价值。
lloovve
34 天前
Rust 都能写夸平台 app 了?
assclb
34 天前
我下个暴论: 这么大的性能提升不单纯是切换技术栈得来的 (不否认 Tauri 的优秀), 主要还是 得物商家客服 Electron 版本做的稀烂

- 登录多一个账号的时候是开一个全新的应用实例 (10 个客服就等于开着 10 个 Electron 应用在跑)
- 账号密码登录以后是明文存储的
- 右下角的托盘图标都是空白的
- 全局还挂着某个研发的 QA Test 工具
- Vue3 Reactive 直接包着一个超大对象
- 编译完代码几乎没有什么混淆

在这种态度下这种设计下, 我不认为这是 Electron 应用的真实水平


至于 Electron 兼容 win7 嘛, 把 Electron 版本降回 22 就好了
a62527776a
34 天前
我以前弄过 Electron 我记得不处理的包是 80M 我记得调整些啥之后就变成 20 多 M 了
565656
34 天前
clash 都转这个了
liaohongxing
34 天前
tauri 目前还不成熟 ,linux 是 webkitgtk ,windows 是 webview2 , 渲染内核都不一致, 外观表现都不敢保证一致, 另外静默打印, cookie 等 api 都没,除了小,暂时没有太大优势, 观望一下
clemente
34 天前
开发成本 呢?
iblessyou
34 天前
@assclb 我也觉得应该还是优化问题,本质都是浏览器跑个 app

@x4gz 我也是不用 Electron 就不用,但比起新出的几个用 webview2 的,我还是宁愿 Electron ,不然总会有人问我为啥这个软件在他那跑不了
qinjiang
34 天前
成本,效率,质量。不可能三角,只说 tarui 有多好,为什么不提开发效率和成本呢,敢拿出来对比吗
liaohongxing
34 天前
另外 linux 还有 libwebkit2gtk-4.0 ,libwebkit2gtk-4.1 版本碎片化,互不兼容,macos 估计也有一样问题。
ersic
34 天前
@weixind 文章写的理由挺充分的啊

>但是,随着时间的推移,直到 2024 年的今天,商家客服的入驻量和使用用户越来越多,用户的电脑配置也是参差不齐,Electron 的弊端开始显现:

性能方面:随着商家客服入驻数量的快速增加,现有 Electron 桌面应用在多账户+多会话高并发场景下,占用内存特别大,存在性能瓶颈;

安全方面:Electron 在内存安全性、跨平台攻击、不受限制的上下文和依赖管理等方面存在一些潜在的弱点;

体验方面:现有 Electron 桌面应用包体积大,下载、更新成本较高;

信息集成方面:商家客服目前需要在商家后台、商家客服后台、商家客服工作台 3 个系统来回切换操作,使用成本很高。
darklinden
34 天前
@weixind
1. tauri 虽然不大好用,但是前端还是 h5 套壳,electron 能展示的前端都可以,能用的前端技术栈都可以,只是需要底层操作的走 rust ,而且本身框架也提供了一些绑定可以直接用
2. tauri 是用的 webview2 ,看系统支持,可能需要补插件,包就大了
3. 自己试过,写小工具什么的 tauri 真的还挺好使
xu455255849
34 天前
electron 开发 我建议做实际业务 不要无脑用新技术,稳定性才是最重要的,electron 绝对是目前最稳定的选择,毕竟 chrome 是经得起考验的
如果你的项目非常考虑性能,我建议直接原生写 就别套壳折腾了
xu455255849
34 天前
electron + rust + C++ DLL 其实理论上啥也能做,也不存在性能问题,至于 chrome 那点包体积,99%用户根本不关心
抖音的直播伴侣就是 electron 套壳 性能不差的
weixind
34 天前
@ersic
这几个点都不太能够支撑切换技术选型。
性能方面:高并发场景内存占用大并没有做具体分析,我没深入使用过 electron ,但是如果高并发的内存占用成倍增加,大概率是他们使用姿势有问题。内存占用无非就是 node 进程 + n * 页面进程。能缩减的就是 node 进程 ---> rust 进程。这不太能缩减多少内存占用。
安全方面:这个有点扯淡,本质就是说 node 内存安全性不如 rust 呗,前端的切换没啥意义,这个不能支撑切换技术栈。
体验方面:80m 在现代网络和硬件下可以忽略不计。
信息集成:这看上去是产品问题,不是技术问题。
liubaicai
34 天前
没有人选 electron 是因为它性能好吧,无非就是开发简单跨平台好。rust 太劝退了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1094563

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX