继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第1天 学习go语言,入门篇,为什么要用go语言

慕九州9237533
关注TA
已关注
手记 43
粉丝 2
获赞 4

课程名称深入Go底层原理,重写Redis中间件实战


课程章节:带你重新认识go语言 1~3


课程讲师Moody


课程内容

  1. 为什么要使用go语言

    △直接编译成二进制,不同于java的字节码

    △没有类似js那种虚拟化损失

    △自带运行环境,无需手动GC回收,由go底层的自动化GC完成

    △一次编译,可以适用多平台

    △超强并发支持能力和并发易用性

  2. 什么是runtime?

    语言在运行时的环境支撑。

    作为程序的一部分打包到二进制的产物。

    随用户本身的程序一起运行,没有界限,用户的程序可以直接通过函数调用runtime包

    runtime包本身功能强大,内存管理能力:比如内存分配;垃圾回收能力;超强并发;一系列常用应用:比如string的处理,网络,打印输出,日志等等

    runtime也屏蔽了一些底层编译调用,不同的CPU架构,不同的系统在runtime包里有不同的实现,这些无需用户关心,由runtime自己处理

    用户使用的一些关键字,比如go,new,make,均是runtime包里的一些函数

  3. go的编译过程

        输出编译过程  go build -n

        

        词法分析->句法分析->语义分析->中间码生成->代码优化->机器码生成->link(把*.a文件组合链接为exe文件)

        词法分析:把源代码变成token(最小语义结构)

        句法分析:把token变成语法树sst

        语义分析:推断和检查,逃逸分析

        中间码生成:SSA,生成与平台无关的中间码,处理平台差异,设置环境变量GOSSAFUNC 来查看中间码

        机器码生成:先生成plan9汇编,然后编译并输出机器码*.a文件


课程收获:

学习了go的一些基础,为后面的学习做准备

http://img.mukewang.com/63176aac0001c82217461010.jpg


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP