Go-性能调优实战案例
🕗 发布于 2024-11-08 11:46 golang
开发语言 后端
pprof-CPU采样:
采样的是函数调用和占用的时间
100次/s的采样率
采样时间是手动启动到手动结束
pprof-堆内存Heap采样:
通过内存分配器在堆上分配和释放的内存
每分配512KB记录一次
pprof-Goroutine协程&线程创建采样:
记录所有用户发起、运行中的goroutine(入口非runtime开头)
记录程序创建的所有系统线程的信息
上面两者比较类似
pprof-Block&Mutex采样:
采样的是block的次数和耗时 阻塞得超过阈值才被记录
采样的是争抢锁的次数和耗时 只记录固定比例的锁操作
实际生产过程中性能优化
- 业务服务优化
- 基础库优化
- Go语言优化
如下
- 业务服务优化:
服务是:单独部署、有功能
有调用链路
单独的benchmark无法满足复杂逻辑分析 压测(单机器 集群)
性能数据采集(单机器 集群分析)
火焰图
看占用比较长的-定位代码-找到问题
并且问题还有:cpu占用80%和40%的数据是不一样的 都采样一下
做完优化还不能直接上线
-还得再测试一下修改后的
-
基础库优化
AB实验SDK优化 分析基础库的核心逻辑和性能瓶颈 压测验证 落地验证
-
Go语言优化
编译器 运行时优化 优化内存分配策略 也是压测-落地
原文地址:https://blog.csdn.net/qq_51234298/article/details/143586174
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!
-
Rust性能优化与调试之性能基准测试
在 Criterion 中创建多个测试组,通过分组功能生成针对不同环境(例如小规模数据 vs 大规模数据、冷缓存 vs 热缓存)的详细分析报告,帮助开发者在不同场景下优化性能。为保证测试结果的实用性,
阅读更多2024-11-08
-
ABC377
我们手动来看例子:5,6,3,1,2,4 -> 2,4,3,5,6,1 -> 4,5,3,6,1,2 -> 6,1,3,2,4,5。按顺序插入,插入的时候去看每个位置到之前的叶子节
阅读更多2024-11-08
-
Linux文本操作三大利器总结:sed、awk、grep
Linux文本操作三大利器总结:sed、awk、grep
阅读更多2024-11-08
-
第三章:TDengine 常用操作和高级功能
TDengine 是一个专门为物联网(IoT)和大数据场景设计的高性能时序数据库。除了基本的创建数据库、表、插入和查询数据之外,TDengine 还提供了许多其他常用操作和高级功能。
阅读更多2024-11-08
-
50岁+人群月活超1亿,短剧迎来新对手,小程序游戏“收割”中老年
年轻人玩的游戏太复杂了,基本的下载都很麻烦,小程序游戏操作方便,随时点开就可以在上面下象棋、打麻将,方便多了,”现年55岁的小刘叔叔告诉AgeTravel。过去受到中老年玩家欢迎的游戏产品,往往都具备
阅读更多2024-11-08
-
在 Bash 中获取 Python 模块变量列
在 Bash 中获取 Python 模块的变量列表可以通过使用 python -c 来运行 Python 代码并输出变量名列表。
阅读更多2024-11-08
-
斗破QT编程入门系列之二:认识Qt:编写一个HelloWorld程序(四星斗师)
窗口左侧有上下两个子窗口,上方的目录树显示了项目内文件的组织结构,显示当前项目的名称,项目的名称都成目录树的一个跟节点,Qt Creator可以打开多个项目,但是只有一个活动项目(Active Pro
阅读更多2024-11-08
-
Bash Shell - 获取日期、时间
以下代码将date的执行结果存储在today变量中。date 是获取日期和时间的命令。可以获取几周前/几周后或几个月前/之后的时间。选择使用 quotes(`)或$使用date获取日期。
阅读更多2024-11-08
-
深入理解 Linux 内存管理:free 命令详解
Linux 系统中 free 命令的使用及其输出各个字段的含义,理解物理内存和交换分区的使用情况,计算内存使用率,free 命令的其他重要选项及其组合使用方法,交换分区的作用、清除方法及其对性能的影响
阅读更多2024-11-08
-
GPU 服务器:超酷算力担当→科技界的宝藏神器!
这 GPU 服务器的厉害之处,很大程度上就靠它那超强的算力。电影制作的时候,GPU 服务器能快速搞特效处理,像《阿凡达》里的虚拟场景和特效制作,没 GPU 算力可不行。#GPU 服务器#高性能计算#图
阅读更多2024-11-08