Electron性能优化

发布时间:2024-12-25 16:14

开启设备的自动优化功能,让系统自动优化游戏性能 #生活技巧# #数码产品使用技巧# #游戏设备优化建议#

正文

谨慎加载模块

在向你的应用程序添加一个 Node.js 模块之前,请检查这个模块。 这个模块包含了多少依赖? 简单的一个 require()声明中包含了什么种类的资源? 你可能发现NPM包注册的最多的或者Github上Star最多的模块实际上并不是最简单或者最小可用的模块。

在项目的根目录中运行

node --cpu-prof --heap-prof -e "require('is-online')"

根目录下生成了以下两个文件

CPU.20210813.174540.13156.0.001.cpuprofileHeap.20210813.174540.13156.0.002.heapprofile

这两个文件都可以使用 Chrome 开发者工具进行分析,分别使用 Performance 和 Memory 标签 进行分析。

浏览器F12打开开发者工具

性能(Performance)标签可以加载.cpuprofile文件内存(Memory)标签可以加载.heapprofile

CPU情况

内存情况

不要阻塞主进程

Electron的主要进程(有时称为“浏览器进程”) 非常特殊:它是与你应用的所有其他进程的父进程,也是和操作系统交互的关键进程。

在任何情况下你都不应阻塞此进程或者运行时间长的用户界面线程。 阻塞UI线程意味着您的整个应用程序将冻结直到主进程准备好继续处理。

如果您的窗口呈现黄色平滑动画, 它需要和 GPU 进程进行通信——再次穿越主进程。

Electron 和 Chromium 谨慎地将大型的磁盘I/O 和 CPU绑定的操作放入新线程,以避免阻塞UI 线程。

优化方式

对于需要长期占用CPU繁重任务,使用 worker threads, 考虑将它们移动到 BrowserWindow, 或 (作为最后手段) 生成一个专用进程。 尽可能避免使用同步IPC 和 remote 模块。 虽然有合法的使用案例,但使用remote模块的时候非常容易不知情地阻塞 UI线程。 Avoid using blocking I/O operations in the main process. 简而言之,每当Node.js的核心模块 (如fs 或 child_process) 提供一个同步版本或 异步版本,你更应该使用异步和非阻塞式的变量。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。

原始发表:2021-08-13,

如有侵权请联系 cloudcommunity@tencent.com 删除

CODING DevOps

CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。

网址:Electron性能优化 https://www.yuejiaxmz.com/news/view/564168

相关内容

探索家庭娱乐新境界:Emby Theater Electron
electron 窗口BrowserWindow
【Electron
网络性能优化
Android性能优化:这是一份全面 & 详细的性能优化指南(含内存优化、布局优化等)
电商系统怎么优化性能,如何优化数据库性能
tomcat 性能优化(主要)
Elasticsearch性能优化技巧
性能优化=改改代码?
性能优化 = 改改代码?

随便看看