底层使用了SIMD来优化,在之前的文章中,我们多次提到了SIMD,这里就不赘述了 。
文章插图
既然如此我们再来确认一下,到底多少个元素以内用for会更快,可以看到16个元素以内,for循环会快于HashSet:
文章插图
总结所以我们应该选择
HashSet<T>
还是数组呢?这个就需要分情况简单的总结一下:- 在小于16个元素场景,使用
for
循环匹配会比较快 。 - 16-32个元素的场景,速度最快是
HashSet<T>
然后是Array.IndexOf
、for
、IEnumerable.Contains
。 - 大于32个元素的场景,速度最快是
HashSet<T>
然后是Array.IndexOf
、IEnumerable.Contains
、for
。
for
比较了 。不过这些差别都很小,除非是性能非常敏感的场景,可以忽略不计,本文解决了笔者的一些困扰,简单记录一下 。经验总结扩展阅读
- 2023高考完学车有优惠吗 高考完学车好还是大学学车好
- 入梅下雨好还是不下雨好
- 十一点是上午还是中午吗
- 腊肉冷水煮还是开水煮
- 皖鱼刺多吗
- 柠檬泡水用热水还是冷水
- 成都属于一线城市还是二线城市
- 甲鱼是王八还是鳖
- 叠墅和大平层哪个保值 买平层好还是叠墅好
- 卧室做榻榻米好还是做床好?