【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Go 1.12 发布:改进了运行时性能以及模块支持

  • 2019-03-27
  • 本文字数:987 字

    阅读完需:约 3 分钟

Go 1.12发布:改进了运行时性能以及模块支持

Go最新版本1.12于近日发布,该版本并没有改动语法规范,它主要对运行时性能、编译工具链以及模块系统等进行了优化。另外,它还为 TLS 1.3 提供了 opt-in 支持,同时改进了对 MacOS 和 iOS 等系统的支持。


Go 1.12 最大的更新亮点是改进了 Go 运行时对内存分配和释放的处理方式。更具体地说,当堆内存中存在大量存活单元的时候,它能更好地提升垃圾回收中扫除(Sweep)阶段的性能,该阶段需要从头到尾扫描整个内存空间,以确定要释放的内存块。这也减少了内存回收后马上再分配的时间延迟;而且,垃圾回收器在释放内存时也表现得更具侵略性,从整体上减小了程序所占用的内存。特别是当申请内存不能在堆中直接分配的时候,会被强制执行这种释放行为。


其他对 Go 运行时的改进包括:优化了定时器和最后期限(Deadline)相关的代码,可以更快地处理网络连接时的最后期限问题;支持通过设置环境变量 cpu.extension=off 来禁用可选 CPU 指令集的扩展;提高了程序内存配置文件的准确性,尤其是在程序从堆中申请了很多大块内存的时候。


Go 1.12 对模块的支持也做了一些改进。模块系统最初在 Go 1.11 版本中被引入,该系统与传统的 GOPATH 方法并存。 为了简化两者之间的切换,Go 1.11 引入了环境变量 GO111MODULE,以及一个默认的 auto(自动)模式,当 Go 命令在 gopath/src 以外的目录树中运行并且其根目录中包含 Go.mod 文件时,该自动模式会尝试使用模块系统。 Go 1.12 更进一步,即使根目录中不存在 Go.mod 文件,它也允许一些 Go 命令按照模块模式运行。 此外,Go 1.12 也引入了很多针对模块系统实现的修补。


如上所述,Go 编译工具链也得到了改进,包括更积极的使用内联函数;新增了标志变量-lang,以实现对不同语言版本的配置;更好的调试信息;以及针对 Go 和汇编函数不同的调用约定,在 ABI 层实现的一个潜在重大变更


Go 1.12 还引入了对 TLS 1.3 的支持,可以通过设置 GODEBUG 环境变量 tls13=1 来启用它。TLS 1.3 向下兼容了 1.2 版本中除 TLSUnique 以外的所有特性,并为这些特性提供了更好的安全性和性能。 但是,一些 TLS 1.3 特性仍处在开发过程中,如密码套件的可配置性等。TLS 1.3 将在 Go 1.13 中默认启用。


最后,Go 新版本提高了对 macOS、iOS、AIX 和 Windows/ARM 等系统的兼容性支持。


关于 Go 1.12 的更多信息,请参阅官方发布日志


查看英文原文Go 1.12 Improves Runtime Performance and Module Support


2019-03-27 08:003866

评论

发布
暂无评论
发现更多内容

春招进行时!当代大学生求职行为大赏

易观分析

求职 招聘 春招

“后疫情时代”支付厂商发力B端已成共识,市场规模破3千亿!

易观分析

产业支付

开学季 | 飞桨AI Studio课程学习,小白也可以成为一名优秀的算法工程师!

百度开发者中心

两会“数字经济”高频出位,博睿数据为企业数字转型提供有力引擎

博睿数据

Gartner发布中国IaaS PaaS市场服务报告,天翼云强势入选

天翼云开发者社区

深度解读「无影云电脑远程办公解决方案」

阿里云弹性计算

远程办公 无影云电脑

MongoDB与亚马逊云科技扩大全球合作

MongoDB中文社区

mongodb

架构实战营模块八消息队列mysql数据库设计

刘洋

架构实战营 #架构实战营 「架构实战营」

IT运维工具难用吗?有没有简单易操作的?

行云管家

云计算 运维 IT运维

前端培训之常见算法分享

@零度

前端算法

APICloud App开发教程之云修复功能

YonBuilder低代码开发平台

APP开发 APICloud 热更新

中国版Postman:Apifox

Liam

程序员 Jmeter Postman API swagger

建木小故事

Jianmu

开源 后端 持续集成 建木CI

百度希壤元宇宙平台上线首个汽车数字展厅,领克探索汽车营销新方式

百度开发者中心

产品帮助中心对SaaS行业的作用

小炮

SaaS平台 帮助中心

多场景推进 服务网格在联通的落地实践(下)

百度开发者中心

限量独家!濒危动物数字藏品免费发放!

百度开发者中心

设计一个 SaaS 系统需要考虑的4个关键点

Im胡子

系统架构 SaaS SaaS设计 SaaS系统架构

什么是目标关键词?

源字节1号

前端开发 后端开发 SEO优化 网站开发

美国法院最新判决:未经 OSI 许可的开源是「假开源」!

腾源会

开源 腾源会

Apache SeaTunnel (Incubating) 2.1.0 发布,内核重构、全面支持 Flink

Apache SeaTunnel

大数据 大数据平台 apache 社区 Apache SeaTunnel #开源项目

IT运维工具难用吗?有没有简单易操作的?

行云管家

运维 IT运维

Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?

码哥字节

Redis 核心技术与实战 Redis 热点key 缓存服务 3月月更

ModStartCMS Laravel9 模块化建站系统 v3.5.0 多图字段支持,系统优化升级

ModStart开源

iOS开发面试的43道最新面试题,让你稳拿大厂offer!

iOSer

ios iOS面试 ios开发 iOS面试题

电路模型和电路定律 (Ⅲ)

謓泽

3月月更

保姆级SpringBoot+Vue图片上传到阿里云OSS教程

沉默王二

Spring Boot

基于Laravel模块化极速开发框架 免费开源CMS

ModStart开源

阿里巴巴云原生大数据运维平台 SREWorks 正式开源

阿里云大数据AI技术

大数据 自动化运维 大规模网络运维

如何理解基础服务和通用服务

Im胡子

基础服务 通用服务 基础服务边界

春分耕种时,AI“现身”田间地头

百度开发者中心

Go 1.12发布:改进了运行时性能以及模块支持_编程语言_Sergio De Simone_InfoQ精选文章