代码编织梦想

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_39923262/article/details/111042924

cesium three性能比较_捞干的|VOCs治理技术技术性能、经济性能分析-爱代码爱编程

原标题:捞干的|VOCs治理技术技术性能、经济性能分析 小萌偶得一次机会可以听叶老师(叶代启)授课,干货超级多,内容超级棒,而且相当全面,现小萌将干货笔记整理分享给大家,供大家学习。有错误请指正,技术性能分析为活性炭动态吸附-脱附性能分析、催化剂性能分析、净化装置性能分析,经济性能分析为生命成本估算、末端治理技术成本估算、运行费用比

cesium three性能比较_希捷Exos 18TB跑分:容量大了和性能也高了点-爱代码爱编程

最近,希捷发布了18TB的希捷银河(Exos)X18企业级硬盘,它主要面向数据中心和企业存储阵列场景,对标西数Gold 18TB EAMR盘。 希捷银河(Exos) X18提供SATA和SAS两个版本,采用的是传统CMR,7200转,有256MB的多段缓存,大体上的参数与此前的X16区别非常的小。 官方资料提到,X18在可靠性、功耗以

cesium three性能比较_初探希捷Exos银河18 TB盘,容量和性能双双提升-爱代码爱编程

点击上方“蓝字”,欢迎关注! 最近,希捷发布了18TB的希捷银河(Exos)X18企业级硬盘,它主要面向数据中心和企业存储阵列场景,对标西数Gold 18TB EAMR盘。 希捷银河(Exos) X18提供SATA和SAS两个版本,采用的是传统CMR,7200转,有256MB的多段缓存,大体上的参数与此前的X16区别非常的小。

cesium three性能比较_纳米银与钨酸铯纳米粒子的光谱互补增强纳米流体的光热转化性能...-爱代码爱编程

文章信息 Enhancement of Photo-Thermal Conversion Performance of the Nanofluids Through Spectral Complementarity between Silver and Cesium Tungstate Oxide Nanoparticles 纳米银与

cesium three性能比较_硬金和千足金都是黄金,哪个比较好?为什么80%人都说硬金不好?...-爱代码爱编程

黄金是非常稳定的贵金属,自古到今,黄金都是富贵的象征,黄金也是非常稀有、珍贵的金属之一。由于原本黄金首饰是富贵人才干佩戴的首饰,现在生活水平提高了,很多人都购买得起黄金首饰。就在前几年,珠宝市场出现一种叫硬金材质的首饰,也叫3D硬金。很多人对硬金和千足金不是很了解,虽然硬金和千足金都是黄金,但是材质工艺和价格不同,对于哪个比较好问题?有

cesium three性能比较_手把手教你!React 项目性能分析及优化-爱代码爱编程

性能优化不是一个简单的事情,但在 95% 以上的 React 项目中,是不需要考虑的,按自己的想法奔放的使用就可以了。 我认为性能优化最好的时候是项目启动时。在项目启动时,需要充分考虑页面的复杂度,如果非常复杂,则必须提前制定各种措施,防止出现性能问题。如果前期评估页面不复杂,那大概率不会出现什么性能问题。最惨的事情就是前期没有评估,中后

golang string 加号连接性能慢_golang代码风格-爱代码爱编程

如何写出扩展性好的代码?这是我工作最近半年来一直在考虑的问题。不管自己做一套系统还是接手别人的项目,只要你的项目需要和别人交互,这个问题都是需要考虑的。我们今天只说说如何写出扩展性好的函数代码。代码都以golang示例。 函数声明 函数声明首先是函数名字要具有自解释性,这个要说到代码注释了,这里就不赘述了。除了函数声明外,还有函数的形

golang string 加号连接性能慢_Go实战--golang中使用redis-爱代码爱编程

生命不止,继续 go go go !!! 以前介绍过golang中如何使用sqlite3:《Go实战–go语言操作sqlite数据库(The way to go)》 今天跟大家分享的是如何在golang中使用redis数据库。 ##何为redis 官网:https://redis.io/ Redis is an in-memory datab

golang for循环_Golang入门(2):一天学完GO的基本语法-爱代码爱编程

摘要 在配置好环境之后,要研究的就是这个语言的语法了。在这篇文章中,作者希望可以简单的介绍一下Golang的各种语法,并与C和Java作一些简单的对比以加深记忆。因为这篇文章只是入门Golang的第二篇文章,所以本文并不会对一些指令进行深挖,仅仅只是停留在“怎么用”的程度,至于“为什么是这样”,则涉及到了具体的应用场景和汇编指令,作者将

@cacheable 是否缓存成功_阿里三面:你的这个项目中提到了高性能内存缓存系统,是如何实现的?有必要引入它吗?...-爱代码爱编程

本地内存缓存是一个在基础软件架构中非常常见的基础设施,也正因其过于常见,以至于平时很少去思考它是如何实现的。在尚未设计缓存系统前,完全没想到原来要需要考虑如此多复杂的事情。本文将由浅入深介绍如何设计一个现代的高性能内存缓存系统。 什么时候需要本地内存缓存 在大部分业务系统中,都会使用诸如 Redis、Memcached 等远程缓存,一

.net 本地文件管理 代码_Go学习_30_Golang代码性能分析工具-爱代码爱编程

Golang内置了一些性能分析工具,可以将性能分析的结果文件输出,我们可以使用图形化的工具查看分析结果,在使用这些工具之前,我们需要安装一些工具,以便于查看分析文件。 为了支持查看图形化分析结果,首先需要安装graphviz工具: brew install graphviz 为了方便调用Golang的分析工具,我们需要将$GOPA

bigdecimal比较是否相等_golang之struct能不能比较-爱代码爱编程

❝ 「第8期」 距离大叔的80期小目标还有72期,今天大叔要跟大家分享的依旧是golang的基础知识点——struct能不能比较,这个基础问题很考验大家基础和细节,也是面试官比较喜欢问的问题,接下来跟大家一起来了解一下吧。 ❞ struct能不能比较? 很显然这句话包含了两种情况: 同一个struct的两个实