压测有三组对比,小于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 ,对于性能还是有一些影响的。
本文涉及的代码可以从 这里 下载。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。









