Electron21值得关注的变化

224 阅读2分钟

前文

# Electron 20 值得关注的变化

# 官网参考

chrome升级到106

chrome105新特性

  1. 重要: css支持:has()查找器, 详看:has css
  2. 重要: css支持Container queries, 详看CSS_container_queries

chrome106新特性

  1. css增加长度单位ic, length, 可以比较好的适应中文.
  2. 增加了popup api, 用于将一个元素显示到顶部, 并提供简单的交互(似乎适合用于弹窗)

devtools的新特性

  1. Performance insights 面板中的最大内容绘制 (LCP)
  2. 现在可以识别闪烁的文本(FOIT、FOUT)为布局偏移的潜在根本原因
  3. 现在可以完整的跟踪异步操作的堆栈信息了
  4. 调试时可以自动忽略第三方脚本, 如vue源码, react源码等. 但是需要修改打包脚本.
  5. 在source面板中隐藏被忽略的source, 比如node_modules

node 16.16

主要是更新了OpenSSL-1.1.1q的代码

V8 10.6

V8 Memory Cage 已启用

Electron 21 启用 V8 沙盒指针,继 Chrome 决定在 Chrome 103 做同样的事情。 这对原生模块有一定的影响。 此功能具有性能和安全优势,但也对原生模块施加了一些新的限制,例如,使用指向外部(“堆外”)内存的 ArrayBuffers。 更多信息请查看 博客文章

简单来说, 启用沙盒指针后, V8堆的最大大小限制为4GB. 同时, 对于使用了原生模块(C++编译成node)的情况下, 不允许直接指向外部的数据缓冲区的操作, 依赖这种操作的模块需要重构。

但它的好处是: 指针压缩可将 V8 堆大小减小至40%,使CPU 和GC性能提高5%-10%。对于绝大多数不会碰到4GB堆大小限制并且不使用需要外部缓冲区的本机模块的Electron应用程序,这些都是显着的性能优势。