写点什么

Go 1.3 正式版发布

  • 2014-06-19
  • 本文字数:1093 字

    阅读完需:约 4 分钟

6 月 18 日,在 Go 1.2 发布六个月之后,Go 官方宣布正式发布 Go 1.3。Go 1.3 并没有引入新的语言功能,只是进行了功能改进,并修复了一些 bug 以及用户的反馈。新的版本开始支持 DragonFly BSD、Solaris、Plan 9 和 Google 的 NaCl( Native Client),且显著改进了链接器和编译器。低版本的 Go 语言用户无需更改任何代码即可升级到 Go 1.3。

Go 语言是由 Google 开发的一个开源项目,目的之一是为了提高开发人员的编程效率。Go 语言的并行机制使其很容易编写多核和网络应用, 而重新设计的的类型系统允许构建有弹性的模块化程序。Go 语言可以快读编译为机器码, 同时具有高效的垃圾回收和强大的运行时反射。它是一门快速的、静态类型的编译语言, 但是感觉上却是动态类型的解释型语言。

Go 1.3 仍在向承诺的目标(更快、更简单)前进,主要改进包括:

  1. 改进了内存模型。在缓冲的 channel 发送和接收数据时增加了一条规则,使缓冲的 channel 可以被用作一个简单的信号灯(Semaphore)。
  2. 不再支持 Windows 2000。微软在 2010 年时就不再支持 Windows 2000,现在 Go 1.3 也放弃对它的支持。
  3. 支持 BSD 和 Solaris 系统。Go 1.3 开始支持 DragonFly BSD、FreeBSD、NetBSD、OpenBSD、Plan 9、Solaris,但对这些系统的支持都有一些其他特殊要求,比如对 FreeBSD 的支持必须要求内核编译时配置COMPAT_FREEBSD32参数。
  4. 支持 Native Client 虚拟机架构。Go 1.3 既可以在 32 位 Inter 架构处理器上 ( GOARCH=386 ) 运行,也能在 64 位 Intel 架构上运行,但是在 64 位架构上使用的是 32 位 pointer,对于 ARM 架构暂不支持。关于 Native Client 的介绍可以阅读其官方介绍
  5. 改进了栈的实现方式。将栈实现方式从分段(segmented)模型改为连续(contiguous)模型。当一个 goroutine( Go 语言提供的一种用户态线程)需要更多的栈空间且超过了可用大小时,栈会被转移到一个单独的更大的内存块。
  6. 改进了垃圾回收机制。Go 已经在堆上实现了精准的垃圾回收,Go 1.3 增加了栈上的垃圾回收。另外,GC 的速度也得到了提升,现在采用的是并发清除算法,可以缩短 50-70% 的 GC 中断时间。
  7. 重构了链接器。对链接器和编译器进行了重构,链接器仍然是使用 C 语言编写,但是指令选择阶段被移入到编译器中并创建了一个新的包liblink。指令选择只会在程序包被编译时执行一次,所以这这样可以加快大幅度提升大工程的编译速度。
  8. 其它的一些改进。比如实现了新的正则表达式引擎、更快的 race detector、默认栈的大小从 8K 变为 4K 字节、资源竞争的检测快了 40%、增加了很多新参数等。

读者可以在这里下载 Go 1.3。详细的改进说明可以阅读官方文档。不能翻墙的用户可以使用社区提供的镜像来下载。

2014-06-19 20:113836
用户头像

发布了 219 篇内容, 共 147.8 次阅读, 收获喜欢 195 次。

关注

评论

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

Kafka源码阅读笔记(1)

InfoQ_Springup

kafka

马丁量化策略系统搭建,量化交易软件开发

与同事组队,用 3s 把工作节点打通,建立信赖与协作关系。

叶小鍵

这份阿里P8大佬手写的 “Java核心面试精选” 疯传阿里内网

码农之家

Java 编程 程序员 互联网 面试

【得物技术】得物前端性能监控实践

得物技术

大前端 体验 监控 用户体验 实践

十大经典系统架构设计面试题

程序员石磊

架构 面试 架构设计

合约跟单交易系统开发量化策略

薇電13242772558

数字货币

浪潮云说丨打造网络安全“铜墙铁壁”

云计算

从能耗大户“变身”智能绿色办公,只需一步到位!

IoT云工坊

物联网 API sdk 办公空间 智能转型

lakin跟投社区APP开发|lakin跟投社区软件系统开发

系统开发

【LeetCode】删除排序链表中的重复元素Java题解

Albert

算法 LeetCode 4月日更

百度联合清华,全球首个十亿像素数据集来了!

百度大脑

人工智能 百度

Google Analytics

曦语

数据分析

11 个非常实用的 Python 和 Shell 拿来就用脚本实例!

JackTian

Python 程序员 Shell linux运维 脚本语言

翻译:《实用的Python编程》09_01_Packages

codists

Python

用APICloud开发仿微信聊天App制作经验分享

YonBuilder低代码开发平台

小程序云开发 大前端 web开发 APP开发 APICloud

腾讯司晓:区块链如何在数字世界中重塑所有权?

CECBC

1分钟get什么是训练数据

澳鹏Appen

人工智能 机器学习 大数据 数据集

【详解文件IO系列】讲讲 MQ 消息中间件 (Kafka,RocketMQ等)与 MMAP、PageCache 的故事

Linux服务器开发

网络编程 Linux服务器开发 底层实现原理 网络io C++后端开发

跨链技术如何破解区块链的可扩展性难题?

CECBC

区块链

量化合约交易机器人系统开发|量化合约交易机器人APP软件开发

系统开发

微擎的日志文件保存在哪里?如何查看。

微擎应用商城

数字货币自动交易机器人APP开发|数字货币自动交易机器人软件系统开发

系统开发

浅谈BSS3.0产品“守成”之策上 • 架构提升篇

鲸品堂

架构 运维 性能

人生向前

shun123456789

streamlit:算法工程师快速编写demo的利器

行者AI

算法

让孩子爱上阅读(一)

箭上有毒

读书笔记 4月日更

混沌工程缓存实战系列一Redis

心远

缓存 混沌工程

Rust从0到1-枚举-match控制流

rust 枚举 match

技术团队内部管理思考

6:00 am

技术管理

跨省通办,海淀在全国率先推出“区块链+”服务新模式

CECBC

Go 1.3正式版发布_Google_小盖_InfoQ精选文章