Go 1.26正式发布。这个由Google开发的编程语言最新版本默认启用了性能更强的Green Tea垃圾收集器(GC),同时在泛型方面引入了简化复杂数据结构实现的改进。
Go 1.26于2月10日发布,可从go.dev下载。
Green Tea垃圾收集器在去年的Go 1.25中作为实验性功能首次亮相,Go团队表示,在大量使用垃圾收集的实际程序中,这一新特性能将垃圾收集开销降低10%至40%。这是因为它通过更好的局部性和CPU可扩展性改进了标记和扫描小对象的性能。在较新的AMD64 CPU平台上运行时,预计垃圾收集开销还能进一步降低约10%。对于谨慎的用户,可以在构建时设置GOEXPERIMENT=nogreenteagc来禁用Green Tea垃圾收集器。这一退出设置预计将在Go 1.27中移除。
Go 1.26中的泛型现在可以在自己的类型参数列表中引用自身。Go团队表示,这一改变简化了复杂数据结构和接口的实现。new函数现在允许其操作数为表达式,用于指定变量的初始值。go fix命令现在成为Go现代化工具的主页,提供了一键式更新Go代码库至最新习惯用法和核心库API的方式。此外,cgo调用的基线运行时开销降低了约30%。
Go 1.26的其他新特性包括:
编译器能够在更多情况下在栈上为切片分配后备存储,从而提升性能。
对于WebAssembly应用程序,运行时现在以更小的增量管理堆内存块,这使得堆大小小于约16 MiB的应用程序内存使用量显著减少。
在64位平台上,运行时现在会在启动时随机化堆基地址。Go团队表示,这是一项安全增强功能,使攻击者更难预测内存地址并在使用cgo时利用漏洞。
实验性分析类型goroutineleak可报告泄漏的协程。可在runtime/pprof包中找到。
实验性simd/archsimd包提供对架构特定SIMD操作的访问。
Go 1.26是最后一个支持macOS 12 Monterey的版本。Go 1.27将要求macOS 13 Ventura或更高版本。
Q&A
Q1:Green Tea垃圾收集器有什么优势?
A:Green Tea垃圾收集器能将垃圾收集开销降低10%至40%,通过改进标记和扫描小对象的性能实现更好的局部性和CPU可扩展性。在较新的AMD64 CPU平台上还能进一步降低约10%的垃圾收集开销。
Q2:Go 1.26的泛型有什么新变化?
A:Go 1.26中的泛型现在可以在自己的类型参数列表中引用自身,这一改变简化了复杂数据结构和接口的实现,使开发者能更容易地构建复杂的数据结构。
Q3:如何禁用Green Tea垃圾收集器?
A:可以在构建时设置GOEXPERIMENT=nogreenteagc来禁用Green Tea垃圾收集器。不过这一退出设置预计将在Go 1.27版本中移除,届时将无法禁用该功能。
好文章,需要你的鼓励
今天讲的出海案例是三星医疗,一家从宁波起家做智能电表的A股公司,旗下子公司三星瑞典签下荷兰最大区域电网运营商Enexis的变压器框架合同,金额1.17亿欧元,约合9.49亿元人民币。
香港大学团队开发的Utonia首次实现了跨领域3D点云数据的统一处理,通过因果模态屏蔽、感知粒度重定标和RoPE增强位置编码三大创新,让一个AI模型就能理解室内扫描、户外雷达、工业设计等各种3D数据。该方法不仅在多个基准测试中超越专门模型,还在机器人操作、空间推理等应用中展现出色性能,为未来空间智能技术发展奠定重要基础。
人工智能正推动计算需求激增,但电信运营商面临结构性障碍:专有技术控制着其无线接入网络。开放RAN旨在打破这种控制,为创新开门。Stackpane首席执行官指出,推理工作负载更加计算密集,代理AI框架需要更严格的策略控制。RAN智能控制器仍被诺基亚等少数供应商垄断。电信运营商规模有限且监管严格,难以实现技术部门的规模经济和快速创新。
Physical Intelligence团队发布了FAST技术,这是一种全新的机器人动作学习方法。该技术通过频域压缩解决了传统方法在高频精细动作上的训练难题,将训练效率提升5倍。FAST首次实现了机器人在未见环境中的零样本操作,能够完成衣物折叠等复杂任务,为通用服务机器人的发展奠定了重要基础。