实际应用中需要判断源字符串中是否包含子字符串,目前用的是strings.Contains,使用benchmark测试,300W字符串中找出一个符合条件的数据,strings.Contains的性能在0.0449 ns/op左右,strings.Index也差不多,在0.0429 ns/op左右;大家知道还有啥更高效的方法吗?
更多评论
感觉不太容易,看了下string.Contains的源码,当substr比较小的时候,是暴力匹配的,做了汇编级别的优化;substr比较大的时候,就是字符串hash了
#1
<a href="/user/Reverie" title="@Reverie">@Reverie</a> 我也看了,确实比较难搞了,后面都是汇编,就是有点奇怪,benchmark测出来很快,但pprof打出来又耗时比较久,根据benchmark测出来的性能加上pprof上统计的时间算出来的调用次数远比真实业务要大很多
#3