Go语言(go windows) 1.8
Go语言(go windows) 1.8

Go语言(go windows) 1.8

大小:65.75 MB

类别:社交通讯系统:

语言:简体中文  使用手机助手

软件介绍

《Go语言(go windows) 1.8》是一款go编辑器,这款软件主要就是为了帮助用户创建一个GO语言开发的环境,软件内的功能非常丰富,操作也很简单,是一款非常不错的软件,感兴趣的小伙伴欢迎下载使用噢!

软件功能

编译器和运行时现在完全用Go编写(有一个汇编器)。C不再参与实现,因此一旦构建分布所需的C编译器就不复存在了。

垃圾收集器现在是并发的,并且通过在可能的情况下与其他goroutine并行运行,提供了显着降低的暂停时间。

默认情况下,Go程序运行时GOMAXPROCS设置为可用的核心数; 在以前的版本中,它默认为1。

现在为所有存储库提供 对内部软件包的支持,而不仅仅是Go核心。

该go命令现在为“vendoring”外部依赖项提供实验性支持。

新go tool trace命令支持细粒度跟踪程序执行。

为命令行使用定制了 一个新go doc命令(distinct from godoc)。

软件特色

编译器和运行时现在在没有C的Go和汇编器中实现。树中剩下的唯一C源与测试或关联cgo。在1.4和更早版本的树中有一个C编译器。它用于构建运行时; 一个自定义编译器是必要的,部分保证C代码将与goroutines的堆栈管理工作。因为运行时是在Go现在,没有必要这个C编译器,它已经走了。删除C的过程的细节在其他地方讨论。

从C创建的转换是为为作业创建的自定义工具的帮助。最重要的是,编译器实际上是通过将C代码自动转换为Go来移动的。它实际上是用不同的语言的同一个程序。它不是编译器的新实现,所以我们期望该进程不会引入新的编译器错误。这个过程的概述在幻灯片中可用此演示文稿。

编译器和工具

独立于但转向去的鼓励,工具的名称已经改变。旧名称6g,8g等等都没有了; 而不是只有一个二进制文件,可访问go tool compile,即编译围棋源为适合于指定的体系结构和操作系统的二进制文件$GOARCH和$GOOS。类似地,现在有一个linker(go tool link)和一个assembler(go tool asm)。链接器从旧的C实现自动翻译,但是汇编器是下面更详细讨论的新的本地Go实现。

类似名称的下拉6g,8g等等,编译器和汇编程序的输出,现在给出一个普通的.o后缀而非.8,.6等

垃圾收集器

作为设计文档中概述的开发的一部分,垃圾收集器已重新设计为1.5 。通过高级算法的组合,收集器的更好的调度,以及与用户程序并行运行更多的收集,预期的延迟比早期版本中的收集器低得多。收集器的“停止世界”阶段将几乎总是在10毫秒以下,通常更少。

对于受益于低延迟的系统(例如用户响应网站),使用新收集器的预期延迟的下降可能是重要的。

一如往常,变化是如此的一般和多样,以致难以做出关于性能的精确陈述。在这个版本中,更改比通常更广泛,其中包括一个新的垃圾回收器和运行时转换到Go。一些程序可能运行速度更快,一些速度更慢。平均而言,Go 1基准套件中的程序在Go 1.5中的运行速度比在Go 1.4中快几个百分点,而如上所述,垃圾收集器的暂停时间明显更短,几乎总是在10毫秒以下。

在Go 1.5中的建立速度将减慢约两倍。编译器和链接器从C到Go的自动翻译导致了Goid的单向Go代码,与良好编写的Go相比性能较差。分析工具和重构有助于改进代码,但仍有很多工作要做。进一步的剖析和优化将继续在Go 1.6和未来的版本

运行

在Go 1.5中,goroutine的调度顺序已经改变。调度程序的属性从未由语言定义,但依赖于调度顺序的程序可能会被此更改打破。我们已经看到了一些(错误的)程序受到这种变化的影响。如果您有隐式依赖于调度顺序的程序,则需要更新它们。

相关介绍

编译器

如上所述,Go 1.5中的编译器是单个Go程序,从旧C源翻译,替换6g,8g等等。其目标由环境变量GOOS和GOARCH。

1.5编译器大多等同于旧的,但是一些内部细节已经改变。一个重要的变化是,常数的求值现在使用math/big包,而不是高精度算术的定制(和较少测试)实现。我们不希望这会影响结果。

对于amd64架构,编译器有一个新选项,-dynlink通过支持在外部共享库中定义的Go符号的引用来辅助动态链接。

汇编

像编译器和链接,在Go 1.5汇编是单个程序替换装配(的套件6a, 8a等)和环境变量 GOARCH和GOOS 配置结构和操作系统。与其他程序不同,汇编器是Go中写的一个全新的程序。

新的汇编程序与以前的汇编程序几乎兼容,但有一些更改可能会影响一些汇编源文件。 有关这些更改的更多详细信息,请参见更新的汇编程序指南。综上所述:

首先,用于常数的表达式求值有些不同。它现在使用64位无符号运算和操作符的优先级(+,-,<<从围棋等)来了,不是C.我们希望这些变化影响到极少数的方案,但人工验证可能需要。

或许更重要的是,在一些机器上 SP,或PC只对一个地址寄存器中的别名,如R13堆栈指针和 R15用于在ARM的硬件的程序计数器,这样的寄存器的引用不包括一个符号是现在非法的。例如,SP并且4(SP)是非法的,但是sym+4(SP)罚款。在这样的机器上,要参考硬件寄存器使用其真实R名称。

一个小的改变是,一些旧的汇编器允许符号

常数=值

定义命名常量。因为这总是可能与传统的C样式#define符号,它仍然被支持(汇编器包括简化的C预处理器的实现),该特征被去除。

链接器

在Go 1.5的连接器提供了一个围棋程序,替换6l,8l等它的操作系统和指令集是由环境变量指定的GOOS和GOARCH。

还有其他几个更改。最重要的是增加一个-buildmode扩展连接风格的选项; 它现在支持的情况,如建立共享库和允许其他语言调用Go库。其中一些在设计文档中概述。有关可用构建模式及其使用的列表,请运行

$ go help buildmode

另一个小小的改动是链接器不再在Windows可执行文件的头中记录构建时间戳。此外,虽然这可能是固定的,Windows cgo可执行文件丢失一些DWARF信息。

热门软件

COPYRIGHT @2016 ALL RIGHTS RESERVED

本站点上的所有软件和资料均为软件作者提供和网友推荐收集整理而来,仅供学习和研究使用。如有侵犯你版权的,请来信227228@qq.com指出,本站将立即改正。

首页 电脑版 顶部