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

1 天前
 xiaoqidev

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

9932 次点击
所在节点    分享发现
108 条回复
x4gz
1 天前
我看到一个 App 如果是 Electron 的 除非是不得不用 否则我是不会下载的
WhiskerSpark
1 天前
其实大部分用户不怎么在乎这些点的,连 360 都有大把的人用。
MYDB
1 天前
本来不知道得物是什么,去搜了下,这玩意安装包再小也不会有多少人下载,估计内部空降领导刷 kpi
xxmym
1 天前
写跨端的大部分会写 Node ,不会写 Rust
weixind
1 天前
包体积 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
1 天前
Rust 都能写夸平台 app 了?
assclb
1 天前
我下个暴论: 这么大的性能提升不单纯是切换技术栈得来的 (不否认 Tauri 的优秀), 主要还是 得物商家客服 Electron 版本做的稀烂

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

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


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

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

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

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

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

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

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

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

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

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

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

© 2021 V2EX