跳到主要内容

5 篇博文 含有标签「内部原理」

查看所有标签

React 中 V8 性能瓶颈的故事

· 阅读需 18 分钟
Benedikt Meurer([@bmeurer](https://twitter.com/bmeurer))和 Mathias Bynens([@mathias](https://twitter.com/mathias))

之前,我们讨论了 JavaScript 引擎如何通过使用 Shapes 和 Inline Caches 优化对象和数组的访问,并特别探讨了引擎如何加速原型属性访问。本文将描述 V8 如何为各种 JavaScript 值选择最佳的内存表示形式,以及这些选择如何影响 Shape 机制——所有这些都有助于解释React 核心中最近的一个 V8 性能瓶颈

JavaScript开发者的代码缓存

· 阅读需 16 分钟
[Leszek Swirski](https://twitter.com/leszekswirski),缓存破坏者

代码缓存(也称为字节码缓存)是浏览器中的一个重要优化。它通过缓存解析和编译的结果来减少经常访问的网站的启动时间。大多数主流 浏览器都实现了某种形式的代码缓存,而Chrome也不例外。事实上,我们过去曾撰写 讨论过Chrome和V8是如何缓存已编译代码的。

嵌入的内置函数

· 阅读需 12 分钟
Jakob Gruber ([@schuay](https://twitter.com/schuay))

V8内置函数(builtins)在每个V8实例中都会消耗内存。内置函数的数量、平均大小以及每个Chrome浏览器标签页中的V8实例数量显著增长。这篇博客描述了过去一年中我们如何将每个网站的V8堆大小中值减少19%。

从JS到DOM再回溯的跟踪

· 阅读需 5 分钟
Ulan Degenbaev、Alexei Filippov、Michael Lippautz 和 Hannes Payer——DOM 小组

在Chrome 66中调试内存泄漏变得更加容易了。Chrome的开发者工具现在可以跟踪和快照C++ DOM对象,并显示从JavaScript可达的所有DOM对象及其引用。这项功能是V8垃圾回收器的新C++跟踪机制的优点之一。

V8中的元素种类

· 阅读需 15 分钟
Mathias Bynens ([@mathias](https://twitter.com/mathias))
备注

注意: 如果你更喜欢观看演示而不是阅读文章,那么请欣赏下面的视频!

JavaScript对象可以拥有与之相关的任意属性。对象属性的名称可以包含任何字符。JavaScript引擎可以选择优化的一种有趣场景是属性名称纯粹为数字的情况,尤其是数组索引