Google公布实现Go 1.5自举的计划

Google最近公布了实现Go 1.5自举(Bootstrap)的计划。相关文档的作者是Go核心开发者Russ Cox,他在Go语言上已经耕耘了接近6年。据Russ介绍,Google就“如何从Go源码树中去除所有的C程序”已经酝酿了一年。 自举(Bootstrapping) 是这样的过程,“用要编译的目标编程语言编写其编译器(或汇编器)”。一般而言,自举有几个优势,比如: 用于测试被自举的语言; 支持使用通常更为高级、提供更多高级抽象的语言来编写编译器; 编译器也可以得益于语言层面的任何改进。 ...阅读全文

阅读:8588 评论:0

为Go语言GC正名-2秒到1毫秒的演变史

英文原文链接:https://blog.twitch.tv/gos-march-to-low-latency-gc-a6fa96f06eb7#.lrmfby2xs 下面我们会介绍https://www.twitch.tv视频直播网站在使用Go过程中的GC耗时演变史。 我们是视频直播系统且拥有数百万的在线用户,消息和聊天系统全部是用Go写的,该服务单台机器同时连接了50万左右的用户。在Go1.4到1.5的版本迭代中,GC得到了20倍的提升,在1.6版本得到了10倍的提升,然后跟Go的Runtime...阅读全文

阅读:9105 评论:3

说说Golang的runtime

runtime包含Go运行时的系统交互的操作,例如控制goruntine的功能。还有debug,pprof进行排查问题和运行时性能分析,tracer来抓取异常事件信息,如 goroutine的创建,加锁解锁状态,系统调用进入推出和锁定还有GC相关的事件,堆栈大小的改变以及进程的退出和开始事件等等;race进行竞态关系检查以及CGO的实现。总的来说运行时是调度器和GC,也是本文主要内容。 <img src="https://pic3.zhimg.com/v2-130f1cfa2eb6ab87c1...阅读全文

2017-06-09 20:17:06 好奇还思猫
阅读:15791 评论:1

Golang中goroutine的调度器详解

Go调度器原理浅析来源:https://www.douban.com/note/300631999/ goroutine是golang的一大特色,或者可以说是最大的特色吧(据我了解),这篇文章主要翻译自Morsing的[这篇博客](http://morsmachine.dk/go-scheduler),我读这篇文章的时候不只是赞叹调度器设计的精巧,而且被Unix内核设计思想的影响和辐射所震撼,感觉好多好东西都带着它的影子。绪论(Introduction)---------------------...阅读全文

2016-04-18 11:36 heiyeshuwu
阅读:8853 评论:0

深入理解Go 1.9 sync.Map

Go官方的faq已经提到内建的map不是线程(goroutine)安全的。在Go 1.6之前, 内置的map类型是部分goroutine安全的,并发的读没有问题,并发的写可能有问题。自go 1.6之后, 并发地读写map会报错,这在一些知名的开源库中都存在这个问题,所以go 1.9之前的解决方案是额外绑定一个锁,封装成一个新的struct或者单独使用锁都可以。另外笔者在go 1.9之前通常是使用concurrent-map来解决这类问题,但是不是所有的第三方库都以此来解决问题。 我们先来看看这个...阅读全文

2017-12-19 20:01:01 终于19岁
阅读:3574 评论:2