golang生成并分析cpu prof文件

server/2024/10/23 13:10:58/

1. 定义一个接口,请求接口时,生成cpu.prof文件

在主协程中新启一个协程,当请求接口时,生成一个60秒的cpu.prof文件

go func() {http.HandleFunc("/prof", startProfileHandler)http.ListenAndServe(":9092", nil)}()

// startProfileHandler 启动 CPU profiling
func startProfileHandler(w http.ResponseWriter, r *http.Request) {// 创建 profile 文件f, err := os.Create("cpu.prof")if err != nil {return}defer f.Close()// 启动 CPU profilingif err := pprof.StartCPUProfile(f); err != nil {return}defer pprof.StopCPUProfile() // 在请求结束时停止 CPU profilingtime.Sleep(60 * time.Second)w.Write([]byte("CPU profiling completed, profile saved as cpu.prof"))
}

2. 分析cpu.prof

 go tool pprof -http=:8080 cpu.prof 

点击view, Flat%为占用cpu的百分比,从这里可以看出占用cpu最多的方法


http://www.ppmy.cn/server/134182.html

相关文章

初识Flink

诞生背景 伴随现代信息技术的持续发展,我们能清晰地察觉到,信息生产的规模不断扩张,信息更新的速率持续攀升。以电商系统为例,用户从搜索商品到下单支付,整个链路可能短短几秒就可以完成,倘若能在这条链路…

前端开发设计模式——状态模式

目录 一、状态模式的定义和特点 二、状态模式的结构与原理 1.结构: 2.原理: 三、状态模式的实现方式 四、状态模式的使用场景 1.按钮的不同状态: 2.页面加载状态: 3.用户登录状态: 五、状态模式的优点 1.提…

深度学习的一些数学基础

数学基础 万丈高楼平地起 怎么说呢,学的数二对于这些东西还是太陌生了,而且当时学的只会做题,不知道怎么使用/(ㄒoㄒ)/~~ 所以记下来一些不太清楚的前置知识点,主要来自《艾伯特深度学习》,书中内容很多&#xff0c…

创建型模式-----(单例模式)

目录 基本概念 饿汉式: 懒汉式: 上锁双判空版本 std::call_once版本: C11标准后局部静态变量版本: 项目中单例模板的应用 基本概念 单例模式:在程序运行期间只有一份,与程序生存周期一样,…

洛谷 P2760 科技庄园(多重背包,二进制优化)

题目链接 https://www.luogu.com.cn/problem/P2760 思路 一个很明显的多重背包问题。 乍一看有两个体积,一个是时间,一个是体力。但时间和体力的消耗是相同的,所以背包的容量为: m i n ( min( min(时间,体力 − 1 …

KUKA机器人选定程序时提示“选择非法”的处理方法

KUKA机器人选定程序时提示“选择非法”的处理方法 如下图所示,选中某个程序,点击选定时, 系统提示:选择非法, 具体处理方法可参考以下内容: 选中该程序后,在右下角打开【编辑】菜单键,再选择【属性】,打开后可以看到程序的一般说明、信息模块和参数等信息,如下图所示…

k8s的微服务

ipvs模式 Service 是由 kube-proxy 组件,加上 iptables 来共同实现的 kube-proxy 通过 iptables 处理 Service 的过程,需要在宿主机上设置相当多的 iptables 规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗…

胤娲科技:AI教父荣膺诺奖——神经网络掀起物理与智能的交响曲

想象一下,当你漫步在秋日金黄的落叶小径上,夕阳温柔地洒在你的肩头,忽然一则消息震撼了你的科技世界——诺贝尔物理学奖,竟然颁给了人工智能(AI)! 没错,不是凝聚态物理或量子物理那些…