Tip #35 转换字符串时优先使用 strconv 而非 fmt
原始链接:Golang Tip #35: Prefer strconv over fmt for converting to/from string.
当需要将数字转换为字符串时,选择合适的工具可以加快处理速度。
strconv 包专门为这个场景而设计,每一点性能提升和内存节省都很重要。
我们来看一个简单的基准测试:
基准测试显示出显着的性能差异。
(虽然我不确定编译器是否做了优化,但两者的上下文是相同的)
- strconv 的函数是为特定的转换任务设计的,这使得它们能比更通用的 fmt 函数执行得更快。
- fmt.Sprint 函数及其变体需要通过反射来识别其正在处理的类型,并确定如何将其格式化为字符串。
这个反射过程并非无成本,它既增加了时间也增加了内存开销。