美文网首页
Go语言爱好者周刊笔记

Go语言爱好者周刊笔记

作者: 路人爱早茶 | 来源:发表于2020-06-01 16:22 被阅读0次

    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语言爱好者周刊笔记

          本文链接:https://www.haomeiwen.com/subject/ulvemhtx.html