-
代码包
-
在 Go 中,代码包是代码编译和安装的基本单位,也是非常直观的代码组织形式。
-
1、包声明
-
package "base"
-
-
2、包导入
import ( mylog "github.com/helper/log" ) mylog 就是导入包的别名
- Go 语言中的变量、常量、函数和类型声明可统称为程序实体,而他们的名称统称为表示符
var logger = NewLogger("gopcp") logger 是标识符 NewLogger("gopcp") 是程序实体
- 标识符的大小写控制对应程序的访问权限
-
3、包初始化
-
有专门的函数负责代码包初始化,这个函数就是无任何参数和结果声明的 init函数。
-
func init() { fmt.Println("initialize...") }
-
Go 会在程序真正执行前对整个程序的依赖进行分析,并初始化相关的代码包。
-
当前代码包中所有全局变量的初始化会在代码包初始化函数执行前完成。
-
-
-
Go 的标准命令
-
go build
-
go run
-
有两个工具对go程序的调优非常有用
- pprof
- 用于以交互的方式访问一些性能概要文件。
- 命令将会分析给定的概要文件,并根据要求提供高可读性的输出信息。这个工具可以分析的概要文件包括 CPU 概要文件、内存概要文件和程序阻塞概要文件。这些包含 Go 程序运行信息的概要文件,可以通过标准代码包 runtime和runtime/pprof 中的程序来生成
- 用于以交互的方式访问一些性能概要文件。
- trace
- 用于读取Go 程序踪迹文件,并以图形化的方式展现出来。它能够让我们深入了解 Go 程序在运行过程中的内部情况,比如,当前进程中堆的大小及使用情况。又比如,程序中的多个 goroutine 是怎样被调度的,以及他们在某个时刻被调度的原因。Go 程序踪迹文件可以通过标准代码包 runtime/trace 和 net/http/pprof 中的程序来生成。
- pprof
-