【Go】strings.Replace 与 bytes.Replace 调优 | thinkeridea博客

标准库中函数大多数情况下更通用,性能并非最好的,还是不能过于迷信标准库,最近又有了新发现,strings.Replace 这个函数自身的效率已经很好了,但是在特定情况下效率并不是最好的,分享一下我如何优化的吧。

我的服务中有部分代码使用 strings.Replace 把一个固定的字符串删除或者替换成另一个字符串,它们有几个特点:

旧的字符串大于或等于新字符串 (len(old) >= len(new)
源字符串的生命周期很短,替换后就不再使用替换前的字符串
它们都比较大,往往超过 2k~4k
本博文中使用函数均在 go-extend 中,优化后的函数在 exbytes.Replace 中。

阅读 490
0 条评论