JavaScript 引擎 V8 发布 8.3 版本
JavaScript 引擎 V8 发布了 8.3 版本(测试阶段),正式版本将在之后随 Chrome 83 一起推出。8.3 版本带来了一些面向开发人员的特性,主要亮点包括:
性能
垃圾收集器中更快的 ArrayBuffer
跟踪
ArrayBuffer
的后备存储是使用嵌入器提供的 ArrayBuffer::Allocator
在 V8 堆之外分配的。当垃圾收集器回收其 ArrayBuffer
对象时,需要释放这些后备存储。V8 v8.3 具有跟踪 ArrayBuffer
及其后备存储的新机制,该机制允许垃圾回收器迭代并同时将后备存储释放给应用程序。这将 ArrayBuffer
繁重的工作负载中的总 GC 暂停时间减少了 50%。
更大的 Wasm 内存
根据 WebAssembly 规范的更新,V8 v8.3 现在允许模块请求最大为 4GB 的内存,从而允许将更多内存密集型用例引入 V8 驱动的平台。要注意的是,这么多的内存可能并不总是在用户的系统上可用;建议以较小的大小创建内存,根据需要进行扩展,并适当地处理增长失败的情况。
修复
存储到原型链上具有类型数组的对象
根据 JavaScript 规范,当将值存储到指定键时,需要查找原型链,以查看键是否已存在于原型中。这些密钥通常不存在于原型链中,因此 V8 安装了快速查找处理程序。
但最近在某些特殊情况中,V8 错误地安装了此快速查找处理程序,从而导致了错误的行为。当 TypedArray
在原型链上时,所有存储到 TypedArray
的 OOB 的键都应被忽略。例如,在低于 v[2]
的情况下,不应向 v
添加属性,并且后续读取应返回 undefined。
v = {}; v.__proto__ = new Int32Array(1); v[2] = 123; return v[2]; // Should return undefined
V8 的快速查找处理程序无法处理这种情况,因此在上例中,将返回 123
。V8 v8.3 通过在 TypedArray
s 在原型链上时不使用快速查找处理程序来解决此问题。这种情况并不常见,在基准测试中尚未发现任何性能下降的情况。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
jQuery 3.5.1 发布,修复安全问题
jQuery 3.5.1 已发布,此版本修复了针对 3.5.0 的回归错误。 具体来说就是,在此前的版本中将内部数据对象改为使用Object.create( null )而非普通对象 ({})。之所以这样做是为了防止与 Object.prototype 属性上的 key 发生冲突。然而,这也意味着用户(尤其是插件)无法再使用原生的 .hasOwnProperty 方法来检查 jQuery 数据中的内容,导致破坏部分代码。目前已恢复了这个改动,但官方计划在 jQuery 4.0 中再放回去。这个改动也是此版本中唯一的代码改动,其他的改动包括对文档和构建系统的一些小更新。 上个版本 jQuery 3.5.0 修复了 jQuery DOM 操作方法中出现的两个安全问题,例如.html(),.append()以及其他的 DOM 操作方法。第一个问题已在jQuery 3.5.0 发布公告中解释过,现在解释一下第二个安全问题。 第二个问题与第一个问题非常相似,这是一个 XSS 漏洞,与传递<option>元素到 jQuery 的 DOM 操作方法有关。本质上,这是使用了一个正则表达式来...
- 下一篇
Inkscape 1.0 发布,超强的跨平台矢量图形编辑软件
Inkscape 是一个矢量图形编辑软件,与 Illustrator、Freehand、CorelDraw、Xara X 等软件很相似,它使用 W3C 标准的 Scalable Vector Graphics (SVG) 文件格式,支持包括形状、路径、文本、标记、克隆、alpha 混合、变换、渐变、图案、组合等 SVG 特性。它也支持创作共用的元数据、节点编辑、图层、复杂的路径运算、位图描摹、文本绕路径、流动文本、直接编辑 XML 等。它可以导入 JPEG、PNG、TIFF 等格式,并输出为 PNG 和多种矢量格式。 经过 3 年多的开发,Inkscape 1.0 终于发布了,现在支持 20+ 语言,其中包括中文。此版本主要亮点包括流畅的性能、HiDPI 支持、改进的实时路径效果和原生 macOS 应用。 更流畅的性能、支持 macOS 此最新版本适用于 Linux、Windows 和 macOS,这也是首次支持 macOS,在 macOS 上被标记为“预览”,这意味着将为下一个版本计划进行其它改进。总体而言,1.0 在 Linux 和 Windows 上提供了更平滑、更高的性能体验,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境