Go1.5 改进摘要

Go1.5版本更新包括使用纯Go实现runtime和编译器、改进垃圾回收器支持并发、调整GOMAXPROCS默认值为CPU核数、推广internal限制规则到第三方包、增加vendor支持以解决依赖问题、新增trace命令以增强程序剖析能力、引入godoc命令、简化跨平台编译流程等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Go1.5 改进简介

  1. 纯Go(+少量汇编)实现 runtime 和 编译器
  2. 改进 垃圾回收器, 支持 并发 (有个指标好像是 停顿在 10 毫秒以内).
  3. GOMAXPROCS 默认值改为 CPU 核数
  4. internal 限制规则推广到第三方包 (之前只有 std 包启用)
  5. 增加 vendor 支持, 基本解决 第三方库的依赖问题和版本问题
  6. 增加 trace 命令, 更友好的剖析程序运行状态
  7. 增加 go doc 命令

语法变化

增加 map 字面量. 以前的代码:

m := map[Point]string{
    Point{29.935523, 52.891566}:   "Persepolis",
    Point{-25.352594, 131.034361}: "Uluru",
    Point{37.422455, -122.084306}: "Googleplex",
}

现在不需要每个都写 Point 了:

m := map[Point]string{
    {29.935523, 52.891566}:   "Persepolis",
    {-25.352594, 131.034361}: "Uluru",
    {37.422455, -122.084306}: "Googleplex",
}

工具变化

之前的 6g/8g 之类的命令合并为一个了: go tool compile, 汇编器和连接器也同样合并为一个了: go tool asm, go tool link. 目标文件统一用 .o 为后缀.

跨平台编译更简单了:

$ export GOOS=darwin GOARCH=amd64
$ go tool compile program.go
$ go tool link program.o

另外, vetcover 已经稳定, 移到核心仓库.

go build 增加了 -buildmode 参数(Windows还不支持), 可以生成给C/C++使用的动态库和静态库(会有人用Go给Python/Ruby之类的语言写扩展吗?).

cgo 部分, Windows 终于支持外部链接, 也就是可以静态编译链接C++库了. 同时, 增加了一个 ${SRCDIR} 参数, 用于解决 link 时 当前目录变化导致找不到 .a 文件的问题.

标准库部分

http://tip.golang.org/doc/go1.5#library

转载于:https://my.oschina.net/chai2010/blog/476210

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值