iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Go1.15更新了哪些功能
  • 328
分享到

Go1.15更新了哪些功能

2023-06-27 11:06:02 328人浏览 独家记忆
摘要

这篇文章主要介绍了Go1.15更新了哪些功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go1.15更新了哪些功能文章都会有所收获,下面我们一起来看看吧。1、新的链接器此版本 Go 可减少链接器资源的使用(时

这篇文章主要介绍了Go1.15更新了哪些功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go1.15更新了哪些功能文章都会有所收获,下面我们一起来看看吧。

1、新的链接器

此版本 Go 可减少链接器资源的使用(时间和内存)并提高代码的健壮性/可维护性。对于在 amd64 架构上运行的基于 ELF操作系统linuxFreeBSDNetBSDOpenBSDDragonflyS olaris),代表性的大型 Go 程序集的链接速度提高 20%,平均所需内存减少 30%。其他体系结构/OS 组合的改进。改进链接程序性能的关键因素是新设计的目标文件格式,以及内部阶段的改进以提高并发性(例如,将重定位并行应用于符号)。Go 1.15 中的目标文件比其 1.14 等价文件稍大。这些更改是对 Go 链接器进行现代化改造的多版本项目的一部分,这意味着将来的版本中有望对链接器进行其他改进。现在,链接器在 linux/amd64linux/arm64 上默认为 -buildmode=pie 的内部链接模式,因此这些配置不再需要 C 链接器。

2、编译器改进,包括略微小了些的二进制文件

unsafe安全规则允许在调用某些函数时将 unsafe.Pointer 转换为 uintptr。以前,在某些情况下,编译器允许进行多个链式转换(例如 syscall.Syscall(…,uintptr(uintptr(ptr)),…))。编译器现在只需要一次转换。使用多次转换的代码应进行更新以满足安全规则。

Go 1.14 相比,Go 1.15 通过消除某些类型的 GC 元数据和更积极地消除了未使用的类型元数据,与 Go 1.14 相比将典型的二进制大小减少了大约 5%。该工具链现在通过将函数与 32 字节边界对齐并填充跳转指令来缓解 GOARCH=amd64 上的 Intel CPU 勘误 SKX102。尽管此填充增加了二进制大小,但这远远超出了上述二进制大小改进所弥补的范围。

Go 1.15 向编译器和汇编器都添加了 -spectre 标志,以允许启用 Spectre 缓解措施。这些几乎是绝对不需要的,主要是作为“纵深防御”机制提供的。有关详细信息,请参见 Spectre Wiki页面。

现在,编译器将拒绝 //go: compiler 指令,这些指令对其所使用的声明无意义,并出现“放错位置的编译器指令”错误。此类错误使用的指令以前已被破坏,但编译器无声地忽略了它们。

现在,编译器的 -JSON 优化日志记录报告大(>= 128 字节)副本,并包含转义分析决策的说明。

3、内嵌 tzdata(时区数据)

增加了一个新包:time/tzdata,当系统找不到时区数据时(比如 windows 等),通过导入这个包,在程序中内嵌时区数据,也可以通过编译时传递 -tags timetzdata 来实现同样的效果。

4、增加 testing.TB.TempDir

测试生成临时文件挺常见的,这个为了更好的解决此问题。

5、增加 testing.T.Deadline

context 引入 testing 包。

6、关于 Ports 部分

darwin/386darwin/arm 不再支持;riscv64 变得更好;linux/arm64 现在作为第一类 port 支持。

7、api 的变动

  1. net/url.URL RawFragmentEscapedFragment

  2. net/url.URL.Redacted

time.Ticker.Reset,我们知道 Timer 是有 Reset 的,这次为 Ticker 也增加

  1. regexp.Regexp.SubexpIndex

  1. sync.Map.LoadAndDelete

  1. crypto/tls.Dialer.DialContext还有其他一些 API 变动,不一一列举。

8、工具链

  1. 增加 go env GOMODCACHEhttps://GitHub.com/golang/go/issues/34527;

  1. opt-in fallbacks in GOPROXYHttps://github.com/golang/go/issues/37367;

  1. vet:warn about string(int)detect impossible interface assertions:https://github.com/golang/go/issues/32479 和 https://github.com/golang/go/issues/4483;

  1. println 允许打印两个值。println(twoValues())

  1. panic:显示可打印的值而不是地址。比如:

type MyString stringpanic(MyString("hello"))

现在打印:

panic: (main.MyString) (0x48aa00,0x4c0840)

期望打印:

panic: main.MyString("hello")

可读性会好很多。

9、性能

  1. amd64 上更好的写屏蔽;

  1. Linux 上,forkAndExec 使用 dup3

  1. sha512 算法速度提升 15%;

  1. ReadMemStats 延迟降低 95%;

  1. 关闭状态的 channel 接收速度提升 99%;

  1. 将小的 int 值转为 interface{} 不额外分配内存。

关于“Go1.15更新了哪些功能”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Go1.15更新了哪些功能”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Go1.15更新了哪些功能

本文链接: https://www.lsjlt.com/news/309894.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Go1.15更新了哪些功能
    这篇文章主要介绍了Go1.15更新了哪些功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go1.15更新了哪些功能文章都会有所收获,下面我们一起来看看吧。1、新的链接器此版本 Go 可减少链接器资源的使用(时...
    99+
    2023-06-27
  • Laravel9.47更新了哪些功能
    这篇文章主要介绍“Laravel9.47更新了哪些功能”,在日常操作中,相信很多人在Laravel9.47更新了哪些功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Laravel9.47更新了哪些功能”的疑...
    99+
    2023-07-05
  • win101903更新了哪些功能
    这篇文章主要讲解了“win101903更新了哪些功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win101903更新了哪些功能”吧!win10 19H1更新内容如下: 1、内置应用可以卸...
    99+
    2023-07-01
  • win1122h2更新了哪些功能
    本篇内容介绍了“win1122h2更新了哪些功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! win1...
    99+
    2023-02-01
    win11
  • Node.js v8.0.0更新了哪些功能
    本篇内容主要讲解“Node.js v8.0.0更新了哪些功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js v8.0.0更新了哪些功能”吧!Nod...
    99+
    2022-10-19
  • windows1019587版本更新了哪些功能
    这篇文章主要介绍“windows1019587版本更新了哪些功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“windows1019587版本更新了哪些功能”文章能帮助大家解决问题。windows1...
    99+
    2023-07-01
  • Vue3.0版本更新了哪些功能
    这篇“Vue3.0版本更新了哪些功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue3.0版本更新了哪些功能”文章吧。进...
    99+
    2023-06-27
  • win101909版本更新了哪些功能
    这篇文章主要讲解了“win101909版本更新了哪些功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win101909版本更新了哪些功能”吧! 一、更新特征: 1.日历直接增加事情 在Wi...
    99+
    2023-07-01
  • CodeRush新版本v20.1.6更新了哪些功能
    这篇文章主要介绍了CodeRush新版本v20.1.6更新了哪些功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CodeRush新版本v20.1.6更新了哪些功能文章都会有所收获,下面我们一起来看看吧。Cod...
    99+
    2023-06-27
  • WebStorm发布2021.3更新了哪些新功能
    这篇文章主要讲解了“WebStorm发布2021.3更新了哪些新功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WebStorm发布2021.3更新了哪些新功能”吧!新功能和改进分为以下几...
    99+
    2023-06-21
  • Windows11 Dev Build 25120更新了哪些功能
    本篇内容主要讲解“Windows11 Dev Build 25120更新了哪些功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Windows11 Dev Bu...
    99+
    2023-04-21
    windows
  • JavaScript最新版本更新到了哪些功能
    这篇“JavaScript最新版本更新到了哪些功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript最新版本...
    99+
    2023-07-04
  • windows1019041搜索功能更新了哪些内容
    这篇文章主要介绍“windows1019041搜索功能更新了哪些内容”,在日常操作中,相信很多人在windows1019041搜索功能更新了哪些内容问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”windows...
    99+
    2023-07-01
  • Java开源O2OA V4.3355更新了哪些功能
    这篇文章主要介绍“Java开源O2OA V4.3355更新了哪些功能”,在日常操作中,相信很多人在Java开源O2OA V4.3355更新了哪些功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java开源O...
    99+
    2023-06-04
  • ADO.NET3.5新增了哪些功能
    本篇内容介绍了“ADO.NET3.5新增了哪些功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ADO.NET3.5的新增重要方法:新增了L...
    99+
    2023-06-17
  • win10 mobile年度更新预览版14327新增了哪些功能? 更新内容汇总
    Win10移动版一周年更新预览版14327已经发布,微软发布了该版本的更新内容。本次更新主要新增Messaging Everywhere功能,可以允许用户在Windows10电脑上直接收发手机短信。 Skype...
    99+
    2023-05-20
    Win10 预览版14327
  • Win10创意者更新快速预览版16273新增了哪些功能?
    今天微软推送了Win10秋季创意者更新16273 pc快速预览版,这个版本新增了哪些功能?带来哪些变化?请看下文详细介绍。 在本次的Win10 PC秋季创意者更新16273快速预览版中,微软继续加入了新的功能,包括My...
    99+
    2023-05-22
    Win10 预览版16273
  • Visual Paradigm工具新增了哪些功能
    Visual Paradigm工具新增了哪些功能?针对这个问题,今天小编总结这篇有关Visual Paradigm工具的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。Visual Para...
    99+
    2022-10-18
  • Ubuntu One新更新增加了什么功能
    小编给大家分享一下Ubuntu One新更新增加了什么功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!据著名网站OMGUBUNTU消息,在Ubuntu11.04...
    99+
    2023-06-16
  • WordPress6.0更新了哪些内容
    这篇文章主要讲解了“WordPress6.0更新了哪些内容”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WordPress6.0更新了哪些内容”吧!WordPress 6.0 主要更新内容如...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作