基本数据类型与字符串之间的转换,优先使用 strconv 而不是 fmt,因为前者性能更佳。
Go 高性能编程技法 - 知乎 https://zhuanlan.zhihu.com/p/482547957
1.1 优先使用 strconv 而不是 fmt
基本数据类型与字符串之间的转换,优先使用 strconv 而不是 fmt,因为前者性能更佳。
// Bad
for i := 0; i < b.N; i++ {
s := fmt.Sprint(rand.Int())
}
BenchmarkFmtSprint-4 143 ns/op 2 allocs/op
// Good
for i := 0; i < b.N; i++ {
s := strconv.Itoa(rand.Int())
}
BenchmarkStrconv-4 64.2 ns/op 1 allocs/op
为什么性能上会有两倍多的差距,因为 fmt 实现上利用反射来达到范型的效果,在运行时进行类型的动态判断,所以带来了一定的性能损耗。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2021-05-11 哪儿网领域驱动设计(DDD)实践之路 Qunar技术沙龙 2021-05-11
2021-05-11 闲鱼单体应用Serverless化拆分实践 原创 柬超 闲鱼技术 今天
2021-05-11 // context canceled ctx := context.Background()
2021-05-11 Virtual DOM(虚拟DOM)
2021-05-11 新一代Web技术栈的演进:SSR/SSG/ISR/DPR都在做什么?
2021-05-11 延迟队列浅析 原创 张浩 网易传媒技术团队 2019-08-02
2021-05-11 延时队列 阙祥盛 百果科技研发团队 2020-06-25