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。

相关文章
|
2月前
|
监控 异构计算
Jetson 学习笔记(八):htop查看CPU占用情况和jtop监控CPU和GPU
在NVIDIA Jetson平台上使用htop和jtop工具来监控CPU、GPU和内存的使用情况,并提供了安装和使用这些工具的具体命令。
216 0
|
4月前
|
C++
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
54 0
|
1月前
|
弹性计算 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:
243 1
|
7月前
|
算法 Java Go
运行时管理GO与Java的概要对比
【5月更文挑战第17天】本文介绍Go、Python和Java的运行时机制各异。Go是编译型语言,其runtime负责内存管理、GC和协程调度,强调性能和低延迟。Java的JVM兼顾跨平台和性能,使用字节码和JIT编译,其GC策略复杂且高效。三种语言在设计和优化上各有侧重,适用不同场景。
116 3
Go语言的条件控制语句及循环语句的学习笔记
本文是Go语言的条件控制语句和循环语句的学习笔记,涵盖了if语句、if-else语句、if嵌套语句、switch语句、select语句以及for循环和相关循环控制语句的使用方法。
Go语言的条件控制语句及循环语句的学习笔记
|
3月前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
4月前
|
设计模式 uml
在电脑主机(MainFrame)中只需要按下主机的开机按钮(on()),即可调用其它硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(Hard
该博客文章通过一个电脑主机启动的示例代码,展示了外观模式(Facade Pattern)的设计模式,其中主机(MainFrame)类通过调用内部硬件组件(如内存、CPU、硬盘)和操作系统的启动方法来实现开机流程,同时讨论了外观模式的优缺点。
|
3月前
|
人工智能 算法 搜索推荐
Go学习笔记-代码调
近年来,人工智能技术飞速发展,Cody作为由Sourcegraph开发的一款AI驱动编码助手,应运而生。它不仅提供代码预测与补全,还能深度理解代码上下文,为开发者提供准确建议,提升编码效率和质量。Cody能识别潜在错误并提出修复建议,缩短调试时间,同时进行智能代码审查,帮助优化代码结构和风格。未来,随着AI技术进步,Cody将不断学习优化,成为开发者不可或缺的伙伴,推动编程领域的创新与发展。
36 0
|
5月前
|
NoSQL Redis 开发工具
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
|
5月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
107 1