Go语言 1.3主要改动翻译
来源:互联网 发布:不编程的app 编辑:程序博客网 时间:2024/06/04 19:39
原创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface
1、对本地客户端的支持
Native Client在Go1.3中又重新出现啦,目前来说既可以在32位Inter架构处理器上(GOARCH=386)运行,也能在64位Inter架构运行,但是在64位架构上依然使用的是32位pointer,而且对于ARM架构是暂不支持的。注意这个是本地客户端(NaCI),而不是可移植本地客户端(PNaCI)。NaCI的具体用途可见博主的另一篇博客。
2.栈
Go 1.3改变了旧版本中goroutine的栈实现方式,从分段栈变为连续栈实现。当一个goroutine需要更多的栈空间且超过了当前可用栈大小时,旧栈会被复制到一个单独的更大的内存块。这个转换消耗会被很好的分摊,因此可以避免在分段栈时,一个重复的计算导致栈不停的分配和释放,因此可以避免以前的"hot split“问题。具体的性能改进可见design document(这里稍后会翻译,请持续关注博主的博客)
3.栈大小
旧的Go版本中把栈空间的最小值增加为8K字节,对于Go 1.3中的栈,会降低为4K 字节
4.性能
Go的二进制数据在这个版本中很多方面的性能都得到了提升,因为runtime和GC的改变还有一些libraries的改变,重要的改变有以下:
默认栈的大小从8K变为4K 字节;
GC的速度得到了提升,现在是采用了一个并发GC扫地算法,可以更好的并行,使用更大的页,因此可以缩短50-70%的GC中断时间;
资源竞争的检测快了40%;
正则表达式regexp对于特定的简单表达式进行了优化并显著的提升了性能,因为新版本中实施了新的引擎。其中引擎的选择是系统自动完成的,具体的细节对于用户是隐藏的;
现在runtime包含了特定的栈信息:记录一个goroutine被阻塞的时间。当发生死锁或者性能问题的时候,这个非常有用;
5.一些库的改变和优化(暂不翻译)
- Go语言 1.3主要改动翻译
- go语言的主要特性
- [翻译]Go语言调度器
- CentOS 6.5 主要改动
- Go 应该成为开发 android 的主要语言
- Go语言内幕(1):主要概念与项目结构
- Go 翻译
- android2.3改动翻译版
- GO 语言写的加密算法(附 java 版翻译)
- android SDK2.3 更新改动翻译
- 【Go】Go语言初学
- [翻译]GO编程语言,或者:为什么除了它,其他类C语言都是垃圾(1)
- [翻译]Go 数据结构
- Go语言
- Go语言
- Go语言
- go语言
- go语言
- mongoose源码分析系列之active_connections
- poj 3237 Tree(树链剖分)
- Zlib.net 解压压缩 数据流 对应java 使用
- java如何添加外部包
- 对快速排序的分析
- Go语言 1.3主要改动翻译
- Cocos2dx如何引用第三方SO文件(Android NDK)
- 查找svn版本大于当前版本的文件夹
- android网络编程
- 打印日志的10个建议
- asp.net数学运算表达式形式的验证码
- java.lang.IllegalArgumentException: adding a window to a container
- opencv2通过比较直方图检索相似图片
- ulimit -a 用来显示当前的各种用户进程限制