主页 > 知识库 > 基于Go Int转string几种方式性能测试

基于Go Int转string几种方式性能测试

热门标签:电话机器人软件免费 外呼系统用什么卡 外呼系统显本地手机号 阿克苏地图标注 涿州代理外呼系统 excel地图标注分布数据 评价高的400电话办理 百度地图标注后传给手机 寿光微信地图标注

Go语言内置int转string至少有3种方式:

fmt.Sprintf("%d",n)
strconv.Itoa(n)
strconv.FormatInt(n,10)

下面针对这3中方式的性能做一下简单的测试:

package gotest
import (
	"fmt"
	"strconv"
	"testing"
)
func BenchmarkSprintf(b *testing.B) {
	n := 10
	b.ResetTimer()
	for i := 0; i  b.N; i++ {
		fmt.Sprintf("%d", n)
	}
}
func BenchmarkItoa(b *testing.B) {
	n := 10
	b.ResetTimer()
	for i := 0; i  b.N; i++ {
		strconv.Itoa(n)
	}
}
func BenchmarkFormatInt(b *testing.B) {
	n := int64(10)
	b.ResetTimer()
	for i := 0; i  b.N; i++ {
		strconv.FormatInt(n, 10)
	}
}

保存文件为int2string_test.go

执行:

go test -v -bench=. int2string_test.go -benchmem
goos: darwin
goarch: amd64
BenchmarkSprintf-8      20000000               114 ns/op              16 B/op          2 allocs/op
BenchmarkItoa-8         200000000                6.33 ns/op            0 B/op          0 allocs/op
BenchmarkFormatInt-8    300000000                4.10 ns/op            0 B/op          0 allocs/op
PASS
ok      command-line-arguments  5.998s

总体来说,strconv.FormatInt()效率最高,fmt.Sprintf()效率最低

补充:Golang类型转换, 整型转换成字符串,字符串转换成整型

看代码吧~

package main
 
import (
 "fmt"
 "reflect"
 "strconv"
)
 
func main() {
 //字符串转成整型int
 num,err:=strconv.Atoi("123")
 if err!=nil {
  panic(err)
 }
 fmt.Println(num,reflect.TypeOf(num))
 
 //整型转换成字符串
 str:=strconv.Itoa(123)
 fmt.Println(str,reflect.TypeOf(str))
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:
  • Golang 空map和未初始化map的注意事项说明
  • Golang 如何判断数组某个元素是否存在 (isset)
  • golang 函数返回chan类型的操作
  • Go语言的Channel遍历方法详解
  • Golang 拷贝Array或Slice的操作
  • Go语言中break label与goto label的区别
  • Go 实现英尺和米的简单单位换算方式

标签:吐鲁番 钦州 兰州 铜川 梅河口 鸡西 重庆 汕头

巨人网络通讯声明:本文标题《基于Go Int转string几种方式性能测试》,本文关键词  基于,Int,转,string,几种,方式,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《基于Go Int转string几种方式性能测试》相关的同类信息!
  • 本页收集关于基于Go Int转string几种方式性能测试的相关信息资讯供网民参考!
  • 推荐文章