开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map: Go 语言执行流程分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9500
Go 语言执行流程分析
内容介绍:
一、Golang 执行流程分析
二、两种执行流程的方式区别
一、Golang 执行流程分析
1. 如果是对源码编译后,再执行,Go 的执行流程如下图
解释说明:
源代码拿到过后用了 Go build 指令,它会把我们的源代码进行编译。编译会形成一个可执行文件。
如果是 Windows,或者是 Linux 又或者 Mac ,文件后面就没有这个 .exe 的后缀。
但是仍然是一个可执行文件。然后拿到这个可执行文件就可以运行。
2. 如果我们是直接 go run go 源代码,Go 的执行流程如下图。
从图片可以看出,只是从运行的角度来看,那肯定第一个方法更快。如果直接 gp run 来执行,其实很难,需要把源码编译成二进制在执行。第二种发放把这个过程隐藏起来了。
因此,你们可以感觉到前者执行的速度要快。
二、两种执行流程的方式区别
1)如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行。
2)如果我们是直接 go run go 源代码,那么如果要在另外一个机器上这么运行,也需要 go 开发环境,否则无法执行。
3)在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。