cesium three性能比较_Go学习_21_Golang代码性能检测Benchmark

Golang的testing包中除了单元测试testing.T之外,还提供了testing.B的Benchmark性能测试,Benchmark测试主要是通过测试CPU和内存的效率,来评估测试代码的性能,与单元测试一样,我们首先需要引入testing包,go的文件需要以_test结尾。

下面我们使用Benchmark测试一下字符串连接的性能:

  • 第一种:使用+进行字符串的连接

  • 第二张:使用bytes.Buffer实现字符串的连接

需要注意的是,Benchmark的性能测试要求每个被测试的方法以Benchmark开头:

我们创建go测试文件concat_string_test.go文件:

1bb2381bacc8ab29174be6de068fb03d.png

通过命令开始测试代码性能:

go test -bench=.

运行结果:

b08e0795530bea77cb63aa1524f896a9.png

从上面的Benchmark测试结果可以看到,使用bytes.Buffer进行字符串的连接性能更高,大约是前一种方法(使用+进行字符串连接)的三倍。

【注意】上面的命令 -bench=. 将会运行测试文件中所有Benchmark开头的函数。

要是需要详细分析方法的性能,可以使用 -benchmem:

go test -bench=. -benchmem

运行结果:

c09acacffbb1fea411d81c9cdf0f2104.png

我们可以看到-benchmem提供的测试数据多了两行,除了单词运行的速度之外,后面两列数据分别是每次运行分配的内存的字节数,以及每次运行分配内存的次数。从上面的测试结果可以看到,比较慢的方法内存分配的次数比较多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值