最新消息:关注人工智能 AI赋能新媒体运营

V8引擎支援预编译注解标籤,提升网页载入速度

科技智能 admin 浏览 评论

Google旗下的JavaScript引擎V8引入一项名为Explicit Compile Hints的新功能,允许开发者透过特定注解指示V8在载入JavaScript文件时,预先编译其中所有会在页面载入阶段被呼叫的函式,以加速网页初始载入效率,该功能已随Chrome 136释出。

在既有的V8执行逻辑,V8会在载入阶段决定每个JavaScript函式的编译时机,是否要立即编译(Eager Compilation),或延后至实际执行时才编译(Lazy Compilation)。当选择延后编译,函式首次被呼叫时,主执行绪需等待V8完成编译后才能继续执行后续逻辑,这在特定情境下可能导致页面反应延迟,特别是在初次载入过程即需执行的函式较多的情况。

此次新增的注解标籤//# allFunctionsCalledOnLoad,开发者可明确告知V8,特定文件中的函式会在页面载入时被呼叫,进而启用预编译。这项提示会让V8在载入期间,于背景执行绪进行完整的语法解析与编译,并与网路请求的下载作业交错执行,减少主执行绪的等待时间。

官方实验显示,在针对20个热门网站进行测试时,有17个网页的JavaScript载入效能明显改善,平均可减少约630毫秒的前景解析与编译时间。

这项机制的重点在于精準控制JavaScript的编译时机。JavaScript语法複杂,即便是判定函式结尾位置,也无法仅靠括号配对而须完整解析语法结构,因此当预先进行语法解析却不马上编译,将导致重複工作与资源浪费。而Explicit Compile Hints让V8在判断时能更有依据,避免过度依赖启发式策略所带来的不确定性。

不过,V8团队也提醒开发者此功能应谨慎使用。当过多函式被设定为预编译,不仅会增加记忆体使用,也可能导致背景执行绪负载过重,反而影响整体效能。因此,理想的使用情境是将初始载入过程,确定会执行的关键函式集中于单一核心文件,并对该文件加注注解,以最大化效果。

V8团队计画将此功能从文件层级延伸至函式层级,使开发者能更细緻地指定特定函式进行预编译。

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)
  • 验证码 点击我更换图片

网友最新评论