golang中把int转成string的方式有很多,最常见的莫过于如下形式:
package main
import (
"fmt"
"strconv"
"testing"
)
func convert() {
a := 10.6
_ = fmt.Sprint(a)
}
func convert2() {
var a uint64 = 11
_ = strconv.FormatUint(a, 10)
//fmt.Println("b is ", b)
}
下面对两种方式的性能做个对比
func BenchmarkHello(t *testing.B) {
t.Run("convert", func(b *testing.B) {
for i := 0; i < t.N; i++ {
convert()
}
})
t.Run("convert2", func(b *testing.B) {
for i := 0; i < t.N; i++ {
convert2()
}
})
}
启动用例后对比结果如下: goos: darwin goarch: arm64 BenchmarkHello BenchmarkHello/convert BenchmarkHello/convert-8 1000000000 0.0000016 ns/op BenchmarkHello/convert2 BenchmarkHello/convert2-8 1000000000 0.0000000 ns/op PASS
通过对比发现 strconv的方式明显比fmt.Sprint 形式要快,因此我们在做大量数据类型转换时候要用strconv
本文链接:https://iokde.com/post/goalng-int-string-benchmark.html,参与评论 »
--EOF--
发表于 2023-02-18 13:47:00。
本站使用「署名 4.0 国际」创作共享协议,转载请注明作者及原网址。tools更多说明 »
提醒:本文最后更新于 472 天前,文中所描述的信息可能已发生改变,请谨慎使用。
Comments