- 博客(3)
- 收藏
- 关注
原创 golang 协程追踪术
简介 对于绝大部分服务,跟踪刨析是用不到的。但是如果遇到了下面问题,可以不妨一试: 怀疑哪个协程慢了 系统调用有问题 协程调度问题 (chan 交互、互斥锁、信号量等) 怀疑是 gc (Garbage-Collect) 影响了服务性能 网络阻塞 等等 坦白的讲,通过跟踪刨析可以看到每个协程在某一时刻在干什么。 做跟踪刨析,首先需要获取trace 数据。可以通过代码中插入trace, 或者上节提...
2020-04-17 10:42:25 423
原创 Golang 性能测试(2) 性能分析
本文介绍 golang 如何做性能分析。 对服务做了基准性能测试后,如果服务出现问题,可以通过性能分析工具,查出消耗资源的瓶颈,并做针对性的性能优化。 Golang 语言也为我们提供了方便的性能分析工具pprof,方便我们做必要的服务优化。pprof 可以做cpu分析,统计所有调用方法执行的时间片(通过采样); 可以查看内存分配,找到是否有内存泄漏,哪里泄露了(调用栈);还可以查看Block、事...
2020-04-13 10:10:20 251
原创 golang 性能测试 (1)
本文介绍golang 如何做基准性能测试。 编写完代码除了跑必要的单元测试外,还需要考虑代码跑起来的性能如何。性能的衡量其实就是程序运行时候进程的内存分配,CPU消耗情况。 golang 语言在提供了功能测试的基础上,提供了丰富的性能测试功能。 SHOW CODE 首先,从一个例子来讲起。 随便写一个简单的快速排序,然后和系统自带的排序做一个性能比较。 如下为简版快排的代码: package b...
2020-04-13 10:00:32 115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人