12、runtime

Go语言的runtime包是Go语言运行时环境的核心组件,提供了丰富的功能来管理和优化程序的执行。

获取 Go 环境

GOOS

获取本机操作系统

fmt.Println(runtime.GOOS)

GOARCH

获取本机 CPU 架构

fmt.Println(runtime.GOARCH)

GOROOT

GOROOT返回Go的根目录。如果存在GOROOT环境变量,返回该变量的值;否则,返回创建Go时的根目录

func GOROOT() string

Go Version

返回Go的版本字符串。它要么是递交的hash和创建时的日期;要么是发行标签如go1.3

func Version() string

CPU

获取本机CPU个数

NumCPU返回本地机器的逻辑CPU个数

func NumCPU() int

设置最大可同时执行的最大CPU数

GOMAXPROCS设置可同时执行的最大CPU数,并返回先前的设置。 若 n < 1,它就不会更改当前设置。本地机器的逻辑CPU数可通过 NumCPU 查询。

func GOMAXPROCS(n int) int

设置cup profile 记录的速录

SetCPUProfileRate设置CPU profile记录的速率为平均每秒hz次。如果hz<=0,SetCPUProfileRate会关闭profile的记录。如果记录器在执行,该速率必须在关闭之后才能修改。

func SetCPUProfileRate(hz int)

GC

立即执行一次垃圾回收

GC执行一次垃圾回收

func GC()

给变量绑定方法,当垃圾回收的时候进行监听

注意x必须是指针类型,f 函数的参数一定要和x保持一致,或者写interface{},不然程序会报错

func SetFinalizer(x, f interface{})