在Go中,通过编写一个Benchmark函数,可以很方便的测试某个功能点的性能。对于重要的功能,我们可以在CI/CD中加入相应的测试流程,以便及时了解功能性能的变化。那么问题来了,如何检测函数的性能变化呢?换句话说,你写了一个函数,但发现它运行起来很慢,你需要优化这个函数。当你谷歌搜索寻找更好的实现方式时,你可以使用Benchmark功能发现它确实变得更快了。但是你不知道它究竟快了多少。想知道功能优化前后的性能对比,提升了多少,靠谱吗?针对以上需求场景,有一个工具可以帮到你,它就是benchstat。基准示例让我们从回顾基准开始。为了方便理解,这里给出一个计算经典斐波那契数列值的例子。funcFibSolution(nint)int{ifn<2{returnn}returnFibSolution(n-1)+FibSolution(n-2)}上面的代码是递归实现。显然,当n变大时,函数的运行会变得非常耗时。以n为20为例,Benchmark函数如下funcBenchmarkFib20(b*testing.B){fori:=0;我
