Golang 1.24 看起来真的很棒

  • Golang 1.24 相关内容

    • 首次发布候选版本:Golang 团队发布了 Golang 1.24 的首个发布候选版本,Upsun 在其热点路径的所有方面广泛使用 Golang,尤其用于整个基础设施中的 HTTP 请求路由。
    • 性能提升:有 2 - 3%的全面性能提升,由“基于瑞士表的新内置映射实现、小对象的更高效内存分配以及新的运行时内部互斥实现”驱动;还有两个新的 cgo 指令(noescapenocallback),有可能在某些情况下减少从 Go 调用 C 代码的开销。
    • 弱指针实现:Go 1.24 包含了弱指针的实现,weak.Pointer[T]类似于atomic.Pointer[T],有Value() *T方法,这与 Go 1.23 中引入的unique包一起,有可能改善实际 Go 应用中的内存使用情况。
    • 后量子密码学crypto/tls包引入了对后量子密码学的支持,标准库现在包括 ML-KEM,这是一种抗量子攻击的密钥交换机制。
    • crypto/tls中的加密客户端问候(ECH):ECH 的目标是解决 TLS 中的长期隐私差距,客户端首次飞行时使用通过 DNS-over-HTTPS 获取的公钥进行加密。
    • encoding/json的改进:通过新的omitzero标签,encoding/json对零值有了更好的支持,omitempty标签的定义与语言中的零值标准定义不一致,新标签可指定类型为零值的字段应从序列化中省略。
    • go.mod中的新tool指令:添加了新的tool指令,可指定构建工具的依赖,无需在项目中使用空的tools.go文件。
    • testing包中的上下文支持*testing.T*testing.B类型现在有Context() context.Context方法,在调用Cleanup函数之前取消上下文,可使测试更干净。
    • 用于测试并发代码的新testing/synctest:仍处于实验阶段,可定义协程“气泡”并提供假时钟,便于测试时间敏感的并发代码。
    • 其他改进:有改进的终结器支持、新的encoding.TextAppenderencoding.BinaryAppender接口、加密安全的随机文本字符串等。
  • 参考信息

阅读 8
0 条评论