go 设置运行 cpu 数目 | 学习笔记

简介: 快速学习 go 设置运行 cpu 数目

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程go 设置运行 cpu 数目】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/626/detail/9750


go 设置运行 cpu 数目

 

一,设置 Golang 运行的 cpu 数

介绍:为了充分了利用多 cpu 的优势,在 Golang 程序中,设置运行的 cpu 数目。
package main
import” fmt"
import ”runtime”

Func  main() {
//获取当前系統 cpu 的数量
num := runt ime,NumCPU()
//我这里设置 num-1的 cpu 运行 go 程序

runt ime.GOMAXPROCS (num)
fmt.Println("num=",  num)

}
go1.8后,默认让程序运行在多个核上,可以不用设置。
go1.8前, 要设置一下,可以更高效的利益 cpu。

import "runtime"
runtime 包提供和 go 运行时环境的互操作,如控制 go 程的图数。它包括用于 refec 包的低层次类型信息;参见 reflect 报的文档获取运行时类型系统的可编程接口。

func NumCPU
func NumCPU() int
NumCPU 返回本地机器的逻辑 CPU 个数。
func GOMAXPROCS
func GOHAXPROCS(Cn int) int
GOMXPROCS 设 E 可同时执行的最大 CPL 数,并返回先前的设置。若 n<1就不会更改当前设置,本地机器的逻辑 CPU 数可通过 NumCPU 壹询。本因数在调度程序优化后会去掉。
func SetCPUProfileRate
func SetCPUProfileRate(hz int)
SetCPuUrtleRale 设置 CPU pole 记录的速率为平均每秒几 z 次。如果 hz<=0 , SelCPUProleRale 会关团 poie 记录如果记录器在执行,该速率必须在关闭之后才能修改。
绝大多数使用者应使用 runtimeppror 包或 esting 包的-testcpupronle 选项非直接yoSetCPUProfleRale.func CPUProfile
func CPUProfle() []byte
CPUProfile 返回二进制 CPU profle 堆栈跟踪数据的下一个 chunk,函数会阻塞直到该数据可用。如果 profle 的记录被关闭,且在记录器开着的时候积累的 profle 数据都被返回,CPUProfle 会返回 nil.调用者在再次调用本图数之前应先保存返回的数据。
绝大多数使用者应使用 runtime/pprof 包或 testing 包的-estcpuprofle 选项而非直接使用 CPUProtle。

相关文章
|
4月前
|
Kubernetes Linux Go
使用 Uber automaxprocs 正确设置 Go 程序线程数
`automaxprocs` 包就是专门用来解决此问题的,并且用法非常简单,只需要使用匿名导入的方式 `import _ "go.uber.org/automaxprocs"` 一行代码即可搞定。
230 78
|
4月前
|
Go 调度
GO语言函数的内部运行机制分析
以上就是Go语言中函数的内部运行机制的概述,展示了函数在Go语言编程中如何发挥作用,以及Go如何使用简洁高效的设计,使得代码更简单,更有逻辑性,更易于理解和维护。尽管这些内容深入了一些底层的概念,但我希望通过这种方式,将这些理论知识更生动、更形象地带给你,让你在理解的同时找到编程的乐趣。
68 5
|
11月前
|
监控 异构计算
Jetson 学习笔记(八):htop查看CPU占用情况和jtop监控CPU和GPU
在NVIDIA Jetson平台上使用htop和jtop工具来监控CPU、GPU和内存的使用情况,并提供了安装和使用这些工具的具体命令。
790 0
|
7月前
|
人工智能 并行计算 安全
用户实操:如何以龙蜥操作系统为底座在 CPU 上运行 DeepSeek-R1
介绍如何在 CPU 上使用 llama.cpp 推理 671B 版本的 DeepSeek R1,以及实际效果。
|
C++
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
123 0
|
10月前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
1309 2
|
12月前
|
Go
Go语言的条件控制语句及循环语句的学习笔记
本文是Go语言的条件控制语句和循环语句的学习笔记,涵盖了if语句、if-else语句、if嵌套语句、switch语句、select语句以及for循环和相关循环控制语句的使用方法。
Go语言的条件控制语句及循环语句的学习笔记
|
设计模式 uml
在电脑主机(MainFrame)中只需要按下主机的开机按钮(on()),即可调用其它硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(Hard
该博客文章通过一个电脑主机启动的示例代码,展示了外观模式(Facade Pattern)的设计模式,其中主机(MainFrame)类通过调用内部硬件组件(如内存、CPU、硬盘)和操作系统的启动方法来实现开机流程,同时讨论了外观模式的优缺点。
|
12月前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
NoSQL Redis 开发工具
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决