BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Go 1.1.1发布 引入竞争检查工具

| 作者 Jeff Martin 关注 16 他的粉丝 ,译者 臧秀涛 关注 4 他的粉丝 发布于 2013年6月28日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Go 1.1是该语言的一个主要发布版本,在beta测试期间,它又带来了一些新特性。只要重新编译代码,开发者就能体验该版本带来的好处。其他特性则需要使用新的库或模式。

性能

如果想看一下性能增长相关的详细信息,可以参考Go的贡献者Dave Cheney的博客。他撰写了一系列深度文章,详细介绍了Go 1.1的性能增长情况。在第1部分,Cheney使用Linux/AMD64平台进行了测试,在1.1版本上,大多数基准测试的速度都有所提高。有趣的是,Gzip和GobEncode的性能略有退化。Cheney对net/http包所做的基准测试表明,所有测试都有所改进。但需要说明的是,在Windows和FreeBSD平台上的性能与Linux平台并不匹配,这一状况到Go 1.2发布时会有所改观。Cheney还有几篇文章详细说明了在i386ARM(包括Raspberry Pi)上的结果。

处理数据竞争

Go的工具箱有了很大的增强,这就是用于调试内存同步错误的Race detector。在多线程系统中,当两个或多个线程试图同时操作某个数据结构时,竞争条件就出现了。我们可以看一下Go的明确说明:“当两个goroutine并发访问同一个变量,并且至少有一个访问是写操作时,数据竞争就出现了。”因为这种bug的特殊性质,定位和修复往往非常困难,而Race detector这一新工具力图简化该过程。这一工具目前可用于64位x86架构上的Windows、Linux和Mac OS X等平台。

获得Go

Go主要支持的平台包括FreeBSD、Linux、Mac OS X、Windows和NetBSD。支持的硬件平台包括i386和AMD64架构,FreeBSD和Linux还支持ARM架构。golang.org网站上提供了Go的安装指令,也可以从该网站直接下载Go。(请注意,当前的版本是Go 1.1.1,它在1.1主要发布版本的基础上修复了一些小bug。)

查看英文原文:Go 1.1 Races Ahead (Safely)

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT