跳到主要内容

14 篇博文 含有标签「内部机制」

查看所有标签

优化 V8 中的 ES2015 代理

· 阅读需 8 分钟
Maya Armyanova([@Zmayski](https://twitter.com/Zmayski)),代理优化师

代理自 ES2015 起便成为 JavaScript 的重要组成部分。它们允许拦截对象的基本操作并自定义其行为。代理是 jsdomComlink RPC 库 等项目的核心部分。最近,我们在提升 V8 中代理的性能方面投入了不少精力。本文将介绍 V8 的总体性能改进模式,并特别说明针对代理的改进。

V8 中快速的 `for`-`in`

· 阅读需 14 分钟
Camillo Bruni ([@camillobruni](http://twitter.com/camillobruni))

for-in 是一种被许多框架广泛使用的语言特性。尽管它十分常见,但从实现角度来看,它是一种较为晦涩的语言构造。V8 付出了巨大努力,使得这一特性尽可能快。在过去的一年里,for-in 变得完全符合规范,并在某些情况下速度提高了 3 倍。

有 `Math.random()`,也有 `Math.random()`

· 阅读需 4 分钟
杨国 ([@hashseed](https://twitter.com/hashseed)),软件工程师兼骰子设计师

Math.random() 返回一个带正号的 Number 值,大于或等于 0 但小于 1,在该范围内随机或伪随机地选择,近似均匀分布,使用与实现相关的算法或策略。本函数不接受任何参数。

代码缓存

· 阅读需 2 分钟
杨果 ([@hashseed](https://twitter.com/hashseed)),软件工程师

V8 使用即时编译(JIT)来执行 JavaScript 代码。这意味着在运行脚本之前必须立即对其进行解析和编译,这可能会导致相当大的开销。正如我们最近宣布,代码缓存是一种减少开销的技术。首次编译脚本时,会生成并存储缓存数据。下次 V8 需要编译相同的脚本时,即使在不同的 V8 实例中,也可以使用缓存数据重新生成编译结果,而无需从头编译。因此,脚本执行速度显著提高。