V8引擎发布7.0正式版,支持WebAssembly线程预览、优化数组排序算法

简介: 该版本将会在几周内与Chrome 70稳定版一起发布,在此之前一直作为Beta版本与Chrome进行联调测试。V 7.0包涵了许多对开发人员很有帮助的新功能。本文带你一起了解其中的一些亮点。

原文作者:Michael Hablich

译者:UC 国际研发 PPP


image.png

V8团队每隔六周都会创建一个新的V8发布分支。每个版本都将在Chrome Beta到达一个milestone之前,从V8的Git的master分支拉出的。

该版本将会在几周内与Chrome 70稳定版一起发布,在此之前一直作为Beta版本与Chrome进行联调测试。V 7.0包涵了许多对开发人员很有帮助的新功能。本文带你一起了解其中的一些亮点。

Embedded built-ins

Embedded builtins 通过在多个V8隔离器之间共享生成的代码来节省内存。从V 6.9开始,我们就在x64上启用了Embedded builtins。V 7.0把这一能力扩大到了除ia32之外的所有平台,为平台节省内存。

WebAssembly线程预览

WebAssembly(Wasm)支持用C++和其他语言编写的代码在Web上运行。原生(Native)应用一个非常有用的能力是使用线程 - 用于并行计算。大多数C和C++开发人员都对pthreads比较熟悉,它是线程管理的标准API。

WebAssembly社区小组一直在努力让Web拥有真正的多线程能力。作为这项工作的一部分,V8已经为WebAssembly引擎中的线程实现了必要的支持。如果想在Chrome中使用该功能,你可以通过chrome://flags/#enable-webassembly-threads来启用,或者也可以为你的网站注册Origin Trial。Origin Trials允许开发人员在完全标准化之前尝试新的Web功能,这也有助于我们收集对新功能和改进至关重要的,真实的反馈。

Origin Trial:
https://github.com/GoogleChrome/OriginTrials

JavaScript语言的新功能

新增Symbol.prototype.description。这使得获取Symbol的描述变得更自然。在此之前,只能通过Symbol.protoype.toString()间接访问描述。感谢Igalia为这个功能的实现做出贡献!

Array.prototype.sort已经在v7.0稳定。以前,v8对于大于10个元素的数组使用“不稳定的”快速排序算法(注:排序算法不稳定,是指该算法可能改变两个相等元素的位置)。现在,我们改用TimSort算法,稳定的排序算法。有关详细信息,请参阅我们的博文。

博文地址:
https://v8.dev/blog/array-sort

V8 API

请通过 git log branch-heads/6.9..branch-heads/7.0 include/v8.h 获取API更改列表。

已经checkout过V8代码的开发者可以通过 git checkout -b 7.0 -t branch-heads/7.0 来测试的新功能。

英文原文:

https://v8.dev/blog/v8-release-70

目录
相关文章
|
8月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
|
10月前
|
搜索推荐 算法 Go
Go语言数组排序(冒泡排序法)—— 用最直观的方式掌握排序算法
本案例介绍使用冒泡排序对整数数组进行升序排序的实现方法,涵盖输入处理、错误检查与排序逻辑。通过代码演示和算法解析,帮助理解排序原理及Go语言切片操作,为学习更复杂排序算法打下基础。
|
11月前
|
数据采集 存储 Web App开发
多线程爬虫优化:快速爬取并写入CSV
多线程爬虫优化:快速爬取并写入CSV
|
存储 监控 Java
Java多线程优化:提高线程池性能的技巧与实践
Java多线程优化:提高线程池性能的技巧与实践
692 1
|
11月前
|
机器学习/深度学习 监控 算法
局域网行为监控软件 C# 多线程数据包捕获算法:基于 KMP 模式匹配的内容分析优化方案探索
本文探讨了一种结合KMP算法的多线程数据包捕获与分析方案,用于局域网行为监控。通过C#实现,该系统可高效检测敏感内容、管理URL访问、分析协议及审计日志。实验表明,相较于传统算法,KMP在处理大规模网络流量时效率显著提升。未来可在算法优化、多模式匹配及机器学习等领域进一步研究。
295 0
|
算法 安全 Java
Java线程调度揭秘:从算法到策略,让你面试稳赢!
在社招面试中,关于线程调度和同步的相关问题常常让人感到棘手。今天,我们将深入解析Java中的线程调度算法、调度策略,探讨线程调度器、时间分片的工作原理,并带你了解常见的线程同步方法。让我们一起破解这些面试难题,提升你的Java并发编程技能!
673 16
|
数据采集 存储 网络协议
Java HttpClient 多线程爬虫优化方案
Java HttpClient 多线程爬虫优化方案
|
Java 调度 Python
多线程优化For循环:实战指南
本文介绍如何使用多线程优化For循环,提高程序处理大量数据或耗时操作的效率。通过并行任务处理,充分利用多核处理器性能,显著缩短执行时间。文中详细解释了多线程基础概念,如线程、进程、线程池等,并提供了Python代码示例,包括单线程、多线程和多进程实现方式。最后,还总结了使用多线程或多进程时需要注意的事项,如线程数量、任务拆分、共享资源访问及异常处理等。
622 7
|
并行计算 算法 安全
面试必问的多线程优化技巧与实战
多线程编程是现代软件开发中不可或缺的一部分,特别是在处理高并发场景和优化程序性能时。作为Java开发者,掌握多线程优化技巧不仅能够提升程序的执行效率,还能在面试中脱颖而出。本文将从多线程基础、线程与进程的区别、多线程的优势出发,深入探讨如何避免死锁与竞态条件、线程间的通信机制、线程池的使用优势、线程优化算法与数据结构的选择,以及硬件加速技术。通过多个Java示例,我们将揭示这些技术的底层原理与实现方法。
988 3
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####

热门文章

最新文章