谷歌于今天为编程语言 Go 发布了全新的 1.20 版本,即将取消对旧版微软 Windows 和苹果 macOS 系统的支持,并增加了大量值得关注的新功能 / 新特性。
Go 1.20 版本更新中最值得关注的两项改进包括:初步支持配置文件引导优化(PGO)版本,以及支持 x86_64 微架构等 CPU 架构功能版本 Flag。
附 Go 1.20 主要更新内容:
Go 1.20 是支持 Microsoft Windows 7 / 8 / Server 2008 / Server 2012 的最后一个版本。自 Go 1.21 开始,用户需要在 Windows 10 或 Windows Server 2016 及更高版本上运行。
Go 1.20 也放弃了对 macOS 10.13 和 10.14 系列的支持。
引入了对 RISC-V 上的 FreeBSD 的实验性支持。
$GOROOT / pkg 目录不再存储标准存档的预编译包存档,可以减少 Go 发行版的大小。
go 命令现在可以定义 AMD64.V2 等架构功能 Flag,以允许根据特定 CPU 架构功能的存在或不存在来选择包实现文件。这对于 x86_64 微架构特性级别的工作来说是个好消息。
go build 和 go install 以及其他与构建相关的命令现在支持“-cover”标志,用于启用带有代码覆盖检测的构建。
优化垃圾收集器,减少内存占用,提高 CPU 性能最多 2%。
对 Profile Guided Optimizations (PGO) 的预览支持。
在 Linux 上,链接器(linker)可为 glibc 或 musl 选择动态解释器。
引入新的 crypto / ecdh 包,为 NIST 曲线和 Curve25519 上的椭圆曲线 Diffie-Hellman 密钥交换提供明确支持。
网友热评
韩伯伯:高性能胶水语言,适合做系统运维相关的东西(去调用C/C++/Rust这些无GC语言写的底层库),一些魔怔的大厂也会拿它做业务,这反倒是邪道(主要是管理起来太麻烦,go的项目更适合少量精锐开发)
tomzds8:最近写了个python爬虫用rss追番,速度太慢了,对多线程的处理也麻烦,用go实现了几个接口是真的快,部署也更简单
白色的叶子:最近在学go,做服务器确实天生的,自带携程和管道。
软媒新友2148512:Go的大型服务支持可能不及java,但其跨平台属性相当优秀,编译的程序不仅能在linux、macos、windows上运行,还可以跑在Android手机上。
软媒新友2148798:云原生带火了这门语言
喔喔头:这个error wrapper可是很多人等了很久的,另外默认重置随机数种子挺好的。另外编译器速度又快起来了