OTP_R15A:R15 预发布版本
我们最近向 GitHub 推送了一个新的主分支,标记为 OTP_R15A。
这是当前 R15 开发的稳定快照(将于 12 月 14 日作为 R15B 发布),其中包括:
OTP-9468 “异常中的行号”
OTP-9451 “并行 make”
OTP-4779 Observer 的新 GUI。将 pman、etop 和 tv 集成到 observer 中,并具有跟踪功能。
OTP-7775 实现了一些内存分配优化。大多数优化减少了线程在内存分配和释放期间的同步引起的争用。最值得注意的是:调度器特定分配器实例中的内存管理同步已重写为使用无锁同步。
调度器特定预分配器中的内存管理同步已重写为使用无锁同步。
“mseg_alloc” 内存段分配器现在使用调度器特定实例,而不是一个实例。除了减少争用之外,这还确保内存分配器始终在 NUMA 系统上的本地 NUMA 节点上创建内存段。
OTP-9632 引入了一个 ERTS 内部的、通用的、多对一的、用于线程间通信的无锁队列。多对一的场景在 ERTS 中非常常见,因此将来可以在很多地方使用。目前,它被用于调度某些作业和异步线程池,但计划在未来有更多用途。
使用 driver_async 功能的驱动程序不再自动锁定到系统,并且可以像任何动态链接的驱动程序一样卸载。
现在,就绪的异步作业的调度也与其他作业交错进行。以前,所有就绪的异步作业都是一次性执行的。
OTP-9631 ERTS 内部系统阻塞功能已被用于阻塞系统的新功能取代。旧的系统阻塞功能存在争用和复杂性问题。新功能利用了运行时系统中新引入的无锁同步所需的线程进度跟踪功能。当不使用阻塞系统功能时,几乎没有任何开销。这是因为跟踪线程进度的功能已经存在且是必需的。
… 以及更多。
这并不是 R15 的完整版本,而是预发布版本。请随时尝试我们的 R15A 版本,并将您的发现反馈给我们。
您的反馈对我们非常重要,我们非常欢迎您的反馈。
此致,
OTP 团队