Go 语言执行流程分析 | 学习笔记

简介: 快速学习 Go 语言执行流程分析

开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map: Go 语言执行流程分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9500


Go 语言执行流程分析

内容介绍:

一、Golang 执行流程分析

二、两种执行流程的方式区别

 

一、Golang 执行流程分析

1. 如果是对源码编译后,再执行,Go 的执行流程如下图

图片10.png

解释说明:

源代码拿到过后用了 Go build 指令,它会把我们的源代码进行编译。编译会形成一个可执行文件。

如果是 Windows,或者是 Linux 又或者 Mac ,文件后面就没有这个 .exe 的后缀。

但是仍然是一个可执行文件。然后拿到这个可执行文件就可以运行。

图片11.png

2. 如果我们是直接 go run go 源代码,Go 的执行流程如下图。

图片12.png

从图片可以看出,只是从运行的角度来看,那肯定第一个方法更快。如果直接 gp run 来执行,其实很难,需要把源码编译成二进制在执行。第二种发放把这个过程隐藏起来了。

因此,你们可以感觉到前者执行的速度要快。

 

二、两种执行流程的方式区别

1)如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行。

2)如果我们是直接 go run go 源代码,那么如果要在另外一个机器上这么运行,也需要 go 开发环境,否则无法执行。

3)在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。

相关文章
|
6天前
|
Go
go语言中的数据类型
go语言中的数据类型
10 0
|
12天前
|
Go 开发者
掌握Go语言:Go语言结构体,精准封装数据,高效管理实体对象(22)
掌握Go语言:Go语言结构体,精准封装数据,高效管理实体对象(22)
|
12天前
|
安全 Go
掌握Go语言:Go语言通道,并发编程的利器与应用实例(20)
掌握Go语言:Go语言通道,并发编程的利器与应用实例(20)
|
12天前
|
存储 缓存 安全
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
|
12天前
|
Go
使用Go语言发邮件
使用Go语言发邮件
16 2
|
24天前
|
缓存 安全 Java
Go语言小细节
Go语言小细节
36 0
|
30天前
|
存储 安全 Go
|
30天前
|
安全 编译器 Go
Go语言中的int和int32:同一个概念吗?
【2月更文挑战第24天】
50 3
|
12天前
|
存储 安全 Go
掌握Go语言:Go语言类型转换,无缝处理数据类型、接口和自定义类型的转换细节解析(29)
掌握Go语言:Go语言类型转换,无缝处理数据类型、接口和自定义类型的转换细节解析(29)
|
6天前
|
存储 Java 编译器
go语言基础语法
go语言基础语法