Go语言爱好者周刊笔记

路人爱早茶 · · 1167 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1.国内下载前缀

 [https://goproxy.io](https://goproxy.io/)
[https://athens.azurefd.net](https://athens.azurefd.net/)
[https://goproxy.cn](https://goproxy.cn/)
[https://gocenter.io](https://gocenter.io/)
 [https://mirrors.aliyun.com/goproxy/](https://mirrors.aliyun.com/goproxy/)

2.golang泛型待当前无,可用interface替代
3.golang历史

- 2009.9 golang正式发布开源代码
- go1目标是梳理语法和标准库:
- 2012年给切片语法增加容量控制,避免不同切片访问有着相同底层数组的其他切片内存
- 2016年引入context包用来简化单个请求的多个gorouine之间与请求域的数据超时和退出操作,很多框架用来控制goroutine的生命周期
- 2017年引入类型别名,解决不同库之间相同变量的兼容问题,比如标准库和扩展库context.context重名问题
- 运行时问题
GC是垃圾回收,gc是编译器:
go1.2使用分段栈实现栈的动态伸缩,栈内存不连续会使cpu命中率下降,使热点函数的调用性能下降
go1.3使用连续动态栈,如此会导致栈的变量地址会因为栈的移动而变化,导致go的内存对象无法直接传递给c语言空间使用,为此制定复杂内存使用规范.
- GC性能改进
go中每个变量都有完备的元信息,通过此可以追踪到全部指针的生命周期
go1.4之前采用停止世界来回收,几秒到十几秒,并且全部是C语言实现;go1.5采用并发增量方式,并且采用c转换到go,以此知道了每个内存指针状态。
-- go2发展方向
- 2015年之前是各种报告巅峰,之后急剧下降
- go2最期待是泛型
之前用接口模拟泛型是借口,因为无法对接口返回值类型检查,支持泛型可能期待在cpu密集运算领域有所建树,纯go语言机器学习算法库出现
- Go语言对WebAssembly平台的支持
可能出现更轻量化的docker替代,或者变异版本的tinygo
-- go在中国
- 中国是go关注最多的国家,也是go贡献排名第二国家,许多人参与了go语言编写。

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:路人爱早茶

查看原文:Go语言爱好者周刊笔记

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1167 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传