Go-性能调优实战案例

pprof-CPU采样:

采样的是函数调用和占用的时间

100次/s的采样率

采样时间是手动启动到手动结束

pprof-堆内存Heap采样:

通过内存分配器在堆上分配和释放的内存

每分配512KB记录一次

pprof-Goroutine协程&线程创建采样:

记录所有用户发起、运行中的goroutine(入口非runtime开头)

记录程序创建的所有系统线程的信息

上面两者比较类似

pprof-Block&Mutex采样:

采样的是block的次数和耗时 阻塞得超过阈值才被记录

采样的是争抢锁的次数和耗时 只记录固定比例的锁操作

实际生产过程中性能优化

  1. 业务服务优化
  2. 基础库优化
  3. Go语言优化

如下

  1. 业务服务优化:

服务是:单独部署、有功能

有调用链路

单独的benchmark无法满足复杂逻辑分析 压测(单机器 集群)

性能数据采集(单机器 集群分析)
火焰图看占用比较长的-定位代码-找到问题

并且问题还有:cpu占用80%和40%的数据是不一样的 都采样一下

做完优化还不能直接上线-还得再测试一下修改后的

  1. 基础库优化

    AB实验SDK优化 分析基础库的核心逻辑和性能瓶颈 压测验证 落地验证

  2. Go语言优化

    编译器 运行时优化 优化内存分配策略 也是压测-落地

相关推荐
皮皮林5512 小时前
代码越“整洁”,性能越“拉胯”?
后端
benchmark_cc2 小时前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
金金金__3 小时前
一篇文章带你入门OpenSpec
后端
阿维的博客日记3 小时前
MultipartFile 是不是表示仅仅是一个分片?
java·后端·spring·multipartfile
海上彼尚3 小时前
Nodejs也能写Agent - 16.LangGraph篇 - 条件分支与循环
前端·后端·langchain·node.js
程序员无隅3 小时前
Coding Agent 为什么压缩上下文后还能继续工作?上下文模块设计拆解
java·开发语言·数据库
Python+994 小时前
Java 枚举类(Enum)详解:从基础到高级应用
java·开发语言·python
二炮手亮子4 小时前
浅记java线程池
java·开发语言
zmzb01034 小时前
C++课后习题训练记录Day157
开发语言·c++
dunge20264 小时前
2026年7月最新ChatGPT Plus / Pro 与 Codex:当 AI Agent 最新5.6版本来袭,必须理解事务、幂等与补偿
开发语言·人工智能·python