Go Int转string几种方式性能测试[通俗易懂]

Go Int转string几种方式性能测试[通俗易懂]Go语言内置int转string至少有3种方式:fmt.Sprintf("%d",n)strconv.Itoa(n)strconv.FormatInt(n,10)下面针对这3中方式的性能做一下简单的测试:packagegotestimport( "fmt" "strconv" "testing")funcBenchmarkSprintf(b*testing.B){ n…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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)
	}
}

Jetbrains全家桶1年46,售后保障稳定

保存文件为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()效率最低

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179380.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【打一局王者荣耀掉星的时间,我制作了一款支持 重力感应 的 3D动态壁纸】

    【打一局王者荣耀掉星的时间,我制作了一款支持 重力感应 的 3D动态壁纸】正在兢兢业业的当一个打工仔,有一个小伙伴问我能不能用Unity制作3D动态壁纸。我一寻思应该问题不大,因为之前用Unity简单制作过一个PC端的桌面宠物,开启Unity背景穿透模式能有一个壁纸的效果。但是仔细一想在手机端也这样做的话好像不能直接套用…所以在网上搜索了一下有没有什么简单可行的方法。然后我发现Unity有一款专门用来做动态壁纸的插件:uLiveWallpaper所以本篇文章就来使用这款插件制作一款最基础的3D重力感应动态壁纸,下面一起看看如何制作吧~

    2022年5月25日
    150
  • 构造哈夫曼树的算法_哈夫曼树的应用数据结构

    构造哈夫曼树的算法_哈夫曼树的应用数据结构一、什么是赫夫曼树给定n个权值作为n个叶子节点,构造一课二叉树,若该树的带权路径长度和(wpl)达到最小,称这样的二叉树为最优二叉树,也就是赫夫曼树。要理解这句话,我们需要了解几个关键词:路径:

    2022年8月16日
    7
  • 八皇后问题详解(四种解法)

    八皇后问题详解(四种解法)如果你去百度百科八皇后这个问题,你会发现人家也是历史上有头有脸的一个问题,最后一句“计算机发明后就有一万种方式解决这个问题”读起来也让程序猿们很快活。闲话少说,开始阐述我的思路:最无脑的解法一定是八个for遍历,浪费了太多的计算资源在各种无用功上面,我们稍微构思一下:首先如何决定下一个皇后能不能放这里可以有两种思路,第一种是尝试维护一个8*8的二维矩阵,每次找到一个空位放下一个皇后就把对应行列对

    2022年6月30日
    22
  • mysql 加入�列,改动列,删除列。

    mysql 加入�列,改动列,删除列。

    2021年12月2日
    39
  • bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法…

    bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法…

    2021年11月8日
    49
  • Java数组

    Java数组12.Java数组一、什么是数组数组可以理解成一个包含相同类型的有序数字集合也称储存一组数据的空间数组属于引用数据类型int[]a={1,2,3,4,5};集合内的数据称为元素

    2022年7月4日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号