性能优化
性能优化是服务端开发的核心能力,通过减少延迟、增加吞吐、降低资源消耗,提升用户体验和系统容量。
性能指标
吞吐量
吞吐量是单位时间处理的请求数,常用 QPS 或 RPS 表示。
延迟
延迟是请求的处理时间,常用 P50、P95、P99 表示。
资源使用率
CPU、内存、磁盘、网络的使用百分比。
性能分析
CPU 分析
工具:top、htop、perf、火焰图。
瓶颈:算法复杂度、不必要的计算、锁竞争。
内存分析
工具:free、valgrind、pprof。
瓶颈:内存泄漏、缓存过大、对象过多。
I/O 分析
工具:iostat、iftop、strace。
瓶颈:磁盘慢、网络慢、系统调用过多。
锁分析
工具:perf lock、pstack、JStack。
瓶颈:锁粒度大、锁持有时间长、热点锁。
性能优化策略
缓存
内存缓存(Redis)、本地缓存(Caffeine)、CDN 缓存、浏览器缓存。
批处理
批量插入、批量查询、批量更新。
异步处理
消息队列、后台任务、事件驱动。
连接池
数据库连接池、HTTP 连接池、Redis 连接池。
性能测试
压测
压测工具:ab、wrk、JMeter、Locust。
压测指标:QPS、延迟、错误率、资源使用率。
基准测试
基准测试工具:Go benchmark、JMH、pytest-benchmark。
注意事项:预热、多次运行、环境一致、统计显著性。