欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Go Int轉string幾種方式性能測試

 更新時間:2021年04月28日 16:43:52   作者:賢冰  
這篇文章主要介紹了Go Int轉string幾種方式測試,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

執(zhí)行:

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

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • 深入解析Go語言編程中slice切片結構

    深入解析Go語言編程中slice切片結構

    這篇文章主要介紹了Go語言編程中slice切片結構,其中Append方法的用法介紹較為詳細,需要的朋友可以參考下
    2015-10-10
  • golang如何利用原始套接字構造UDP包詳解

    golang如何利用原始套接字構造UDP包詳解

    這篇文章主要給大家介紹了關于golang如何利用原始套接字構造UDP包的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用golang具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-10-10
  • 使用go自定義prometheus的exporter

    使用go自定義prometheus的exporter

    在prometheus中如果要監(jiān)控服務器和應用的各種指標,需要用各種各樣的exporter服務,這篇文章主要介紹了使用go自定義prometheus的exporter,需要的朋友可以參考下
    2023-03-03
  • Go 語言 JSON 標準庫的使用

    Go 語言 JSON 標準庫的使用

    今天通過本文給大家介紹Go 語言 JSON 標準庫的使用小結,包括序列化和反序列化的相關知識,感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • Golang斷言判斷值類型的實現(xiàn)方法

    Golang斷言判斷值類型的實現(xiàn)方法

    這篇文章主要介紹了Golang斷言判斷值類型的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 淺談GO中的Channel以及死鎖的造成

    淺談GO中的Channel以及死鎖的造成

    本文主要介紹了淺談GO中的Channel以及死鎖的造成,文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 一文帶你掌握Go語言中的文件讀取操作

    一文帶你掌握Go語言中的文件讀取操作

    這篇文章主要和大家分享一下Go語言中的文件讀取操作,文中的示例代碼講解詳細,對我們學習Go語言有一定的幫助,需要的小伙伴可以參考一下
    2022-12-12
  • Go語言sort包函數(shù)使用示例

    Go語言sort包函數(shù)使用示例

    這篇文章主要為大家介紹了Go語言sort包函數(shù)使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • GO中的條件變量sync.Cond詳解

    GO中的條件變量sync.Cond詳解

    條件變量是基于互斥鎖的,它必須基于互斥鎖才能發(fā)揮作用,條件變量的初始化離不開互斥鎖,并且它的方法有點也是基于互斥鎖的,這篇文章主要介紹了GO的條件變量sync.Cond,需要的朋友可以參考下
    2023-01-01
  • 詳解Go語言中的結構體的特性

    詳解Go語言中的結構體的特性

    結構體是Go語言中重要且靈活的概念之一,本文旨在深入介紹Go語言中的結構體,揭示其重要性和靈活性,并向讀者展示結構體支持的眾多特性,需要的可以參考一下
    2023-06-06

最新評論