Electron是一个开源的跨平台桌面应用程序开发框架,由GitHub开发并维护。它将Chromium渲染引擎与Node.js运行时相结合,允许开发者使用HTML、CSS和JavaScript等Web技术构建原生桌面应用程序,支持Windows、macOS和Linux平台。Visual Studio Code、Slack等知名软件均基于该框架构建。
Electron 将 Chromium 浏览器内核和 Node.js 运行时打包进应用,是其内存开销居高不下的根本原因
许多第三方应用(尤其是游戏或基于 Electron 构建的跨平台应用)对 Accessibility API 的支持参差不齐
Toonflow 大概率采用了 Electron 一类的 Web 技术封装方案
相比基于 Electron 或 Web 的方案,WPF 应用在内存占用和系统集成度上往往更有优势
选择 Swift 原生开发意味着 macOS 与 Windows 需要分别维护两套代码,放弃了 Electron 的跨平台便利
一家开发会议录制工具的团队将核心录制引擎从 Electron 迁移到原生 Swift,并在 Hacker News 上分享了该工程实践
Electron 基于 Chromium,在处理系统级音视频捕获时需要通过复杂的桥接层调用系统能力,带来额外性能开销和较高内存占用
针对应用中真正的性能瓶颈进行有针对性的原生化改造,往往比推倒重来更务实
混合架构中 IPC 的常见实现方式包括 Unix Domain Socket、Named Pipe、NSXPCConnection 以及 Electron 的 MessageChannelMain
混合架构策略是用 Electron 或 Web 技术构建 UI 层,而将性能敏感的录制引擎下沉为独立的原生模块,再通过进程间通信协作
还有 40 条时间轴事件
VS Code基于Electron框架构建,采用Language Server Protocol(LSP)等开放协议
90%已验证Electron是由GitHub开发的跨平台桌面应用框架,VS Code、Slack、Discord等应用都基于Electron构建
80%已验证VS Code是微软于2015年推出的开源代码编辑器,基于Electron框架构建
80%已验证Tauri应用的安装包通常只有几MB,而Electron应用动辄超过100MB;Tauri内存占用普遍低于Electron 50%以上
80%已验证Atom 编辑器于2022年底正式停止维护
75%已验证Electron是由GitHub开发的跨平台桌面应用框架,将Chromium浏览器引擎和Node.js运行时捆绑在一起,允许开发者使用web技术构建桌面应用
70%已验证Electron框架本身占用200-500MB内存
65%已验证Electron 框架将完整的 Chromium 浏览器引擎和 Node.js 运行时打包在一起
65%已验证VS Code、Slack和Discord都是基于Electron构建的应用
65%已验证Electron应用的典型安装包往往超过100MB,运行时内存占用超过200MB
65%已验证Electron由GitHub于2013年开发,最初用于构建Atom代码编辑器
65%已验证Electron应用由于内嵌整个Chromium,即使简单应用打包体积也通常超过100MB,运行时内存占用动辄数百MB
65%已验证Electron applications load an entire Chromium browser engine and easily consume hundreds of MB of memory
65%已验证VS Code基于Electron框架构建,采用插件化架构和Extension API
65%已验证VS Code 是微软开源的代码编辑器,凭借其 Language Server Protocol(LSP)架构和丰富的扩展生态,已成为全球最受欢迎的开发工具之一
65%待验证Desktop applications built on frameworks like Electron or Tauri allow web technologies to combine with native system capabilities such as file I/O and process management
90%待验证基于Electron的单个应用往往占用超过200MB的磁盘空间
75%待验证Trae基于Electron和Monaco Editor框架构建,兼容VS Code的Extension API
75%待验证基于Tauri的应用包体积通常只有Electron应用的1/10到1/5
60%待验证Obsidian的底层框架是Electron,将Chromium浏览器引擎与Node.js运行时打包在一起
60%