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)在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。

相关文章
|
9天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
22 7
|
9天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
9天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
86 71
|
8天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
93 67
|
9天前
|
存储 Go
go语言中映射
go语言中映射
27 11
|
10天前
|
Go 索引
go语言使用range关键字
go语言使用range关键字
18 7
|
10天前
|
Go 索引
go语言修改元素
go语言修改元素
20 6
|
11天前
|
Go 索引
go语言for遍历数组或切片
go语言for遍历数组或切片
84 62
|
13天前
|
并行计算 安全 Go
Go语言中的并发编程:掌握goroutines和channels####
本文深入探讨了Go语言中并发编程的核心概念——goroutine和channel。不同于传统的线程模型,Go通过轻量级的goroutine和通信机制channel,实现了高效的并发处理。我们将从基础概念开始,逐步深入到实际应用案例,揭示如何在Go语言中优雅地实现并发控制和数据同步。 ####
|
11天前
|
Go
go语言for遍历映射(map)
go语言for遍历映射(map)
25 12