Golang字符串拼接
Golang字符串拼接
Golang中字符串的拼接存在很多种方法,性能也存在明显的差异。考虑一种场景,需要连续地拼接大量字符串。
不同字符串拼接的性能对比
采用操作符+
拼接
func BenchmarkConcatenateStringByPlus(b *testing.B) {var testStr stringfor i := 0; i < b.N; i++ {// Concatenating strings using + operator.testStr += "test"}
}
采用strings.Join
函数
func BenchmarkConcatenateStringByJoin(b *testing.B) {// Creating and initializing slice of stringvar testSlice []stringfor i := 0; i < b.N; i++ {testSlice = append(testSlice, "test")}str := strings.Join(testSlice, "")_ = str
}
采用bytes.Buffer
的WriteString
函数
func BenchmarkConcatenateStringByBuffer(b *testing.B) {// Creating and initializing strings using bytes.Buffer with writeString() function.var testBuffer bytes.Bufferfor i := 0; i < b.N; i++ {testBuffer.WriteString("test")}
}
采用strings.Builder
的WriteString
函数
func BenchmarkConcatenateStringByBuilder(b *testing.B) {// Using strings.Buildervar testBuilder strings.Builderfor i := 0; i < b.N; i++ {testBuilder.WriteString("test")}
}
运行golang命令go test -bench=. -v
得到各个案例的性能得分。
BenchmarkConcatenateStringByPlus-16 409539 88628 ns/op
BenchmarkConcatenateStringByJoin-16 13896931 92.5 ns/op
BenchmarkConcatenateStringByBuffer-16 145830595 9.34 ns/op
BenchmarkConcatenateStringByBuilder-16 363210975 10.7 ns/op
根据压测结果,在需要频繁拼接字符串的场景下,WriteString
显然是最优的选择,相较于前两种存在数量级的差距。
Golang字符串拼接相关推荐
- Golang字符串拼接的方法
Golang字符串拼接的方法 three := []string{"a", "b1"}four := []string{"c01", &qu ...
- golang 字符串拼接方式
最近在做性能优化,有个函数里面的耗时特别长,看里面的操作大多是一些字符串拼接的操作,而字符串拼接在 golang 里面其实有很多种实现. 实现方法 1.直接使用运算符 func BenchmarkAd ...
- golang字符串拼接方式
字符串拼接是字符的常见操作.在golang中,遇见了字符串拼接.作为一个长期的C程序员,我第一反应是:字符串拼接函数strcat,但发现golang并无字符串拼接函数. 我想起了最简单的方法,通过+操 ...
- golang 字符串拼接性能比较
背景 最近在做一个服务发现/注册的agent, 各个服务需要通过这个agent来注册自己的服务,在完成 开发后,测试性能时发现性能达不到要求,通过pprof 来确认cpu主要耗费在gc上,分析结果主要 ...
- go拼接字符串不如php,golang 字符串拼接性能的对比分析
背景 最近在做一个服务发现/注册的agent, 各个服务需要通过这个agent来注册自己的服务,在完成 开发后,测试性能时发现性能达不到要求,通过pprof 来确认cpu主要耗费在gc上,分析结果主要 ...
- golang 字符串拼接 字符串数组转字符串
1.字符串拼接 一般对于少量的字符串拼接可以直接用+来连接,不过最好的方法还是Builder. 用buffer.Builder,官方建议用这个. package mainimport ("f ...
- golang字符串拼接,字符串数组转字符串
1.字符串拼接 一般对于少量的字符串拼接可以直接用+来连接,不过最好的方法还是Builder. 用buffer.Builder,官方建议用这个. package mainimport ("f ...
- Golang 字符串拼接
引入 Golang中的string类型是只读且不可变的.因此通过循环字符串切片拼接字符串的方式会导致大量的string创建.销毁和内存分配 通过bytes.Buffer优化 使用var bs byte ...
- golang中的字符串拼接
go语言中支持的字符串拼接的方法有很多种,这里就来罗列一下 常用的字符串拼接方法 1.最常用的方法肯定是 + 连接两个字符串.这与python类似,不过由于golang中的字符串是不可变的类型,因此用 ...
最新文章
- 网站SEO文章关键词布局优化的技巧指南
- Linux日常运维管理技巧(三)iptables规则备份和恢复、firewalld的9个zone、任务计划cron、chkconfig系统服务管理、添加服务命令、systemctl管理服务
- 中台不火,天理难容!
- SpringBoot (一) :入门篇
- MongoDB 3.0 新特性【转】
- 文献阅读 An incremental density-based clustering framework using fuzzy local clustering
- AIDE手机编程初级教程(零基础向) 引入篇
- EPLAN教程——工具栏详解(2)默认工具栏
- 使用Ballerina CLI工具开发Ballerina项目
- 安卓java百度地图api文档_Android调用百度地图API 实时定位代码
- 第四章第三节数据资产盘点-业务价值链、数据场景梳理
- 不带ui的服务器系统,win不含ui的云服务器
- 软件工程网络15个人案例作业3(201521123045 郑子熙)
- VSCode远程连接报错
- 小企业如何利用区块链和大数据获利?
- MCAL知识点(十九):SENT驱动详细配置
- 德国4-0葡萄牙 穆勒帽子戏法佩佩染红
- 【汇编】OllyDbg使用方法
- 我差点错过高校毕业生毕业之后这个3000元现金直接打入银行卡的补贴!
- git 进阶系列教程-------git使用流程
热门文章
- 小米装linux双系统,小米9双系统发布
- 4.3 脉冲响应不变法
- 虚拟运营商治理170垃圾短信推举报平台
- 山科c语言题库,计算机培训 所有C语言题库
- centos发现网络连不上了,重启网络服务报错“systemctl status network.service” and “journalctl -xe” for details. [失败]
- 黑马程序员_程序代码实现进制转换
- intellij idea weblogic 下面 怎么远程断点
- 用go实现linux命令行
- CTF网络安全大赛介绍
- wxc-cell使用