Golang 中整数转字符串的方法

2020-01-28 13:29:13王旭

压测有三组对比,小于100的情况,大数字的情况,还有二进制的情况。


BenchmarkItoa-8         300000000     4.58 ns/op    0 B/op    0 allocs/op
BenchmarkItoaFormatInt-8     500000000     3.07 ns/op    0 B/op    0 allocs/op
BenchmarkItoaBase2Sprintf-8   20000000     86.4 ns/op    16 B/op    2 allocs/op
BenchmarkItoaBase2FormatInt-8  50000000     30.2 ns/op    8 B/op    1 allocs/op
BenchmarkItoaSprintf-8      20000000     83.5 ns/op    16 B/op    2 allocs/op
BenchmarkItoaBig-8        30000000     44.6 ns/op    16 B/op    1 allocs/op
BenchmarkItoaFormatIntBig-8   30000000     43.9 ns/op    16 B/op    1 allocs/op
BenchmarkItoaSprintfBig-8    20000000    108 ns/op    24 B/op    2 allocs/op
    Sprintf 在所有情况中都是最差的,还是别用这个包了。 小于100的情况会有加速,不光是性能上的加速,因为结果是提前算好的,也不需要申请内存。 FormatInt 10进制性能最好,其它的情况差一个数量级。 Itoa 虽然只是封装了 FormatInt ,对于性能还是有一些影响的。

本文涉及的代码可以从 这里 下载。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。