【发布时间】:2011-08-02 12:31:00
【问题描述】:
我有一段对速度至关重要的代码,它涉及比较 2 个 4 字节数组。我一直在努力找出实现这一目标的最快方法,并查看了this。
使用 pinvoke 和 memcmp 进行 100,000,000 次比较大约需要 9.5 秒,使用上面链接中发布的 UnsafeCompare 方法需要大约 3.5 秒。
如果设置 2 4 个字符串并使用 s1 == s2 进行比较,则需要约 0.5 秒。如果我使用 string.Compare(s1, s2) 大约需要 12 秒。
有什么方法可以让我的字节数组比较来比较执行 s1 == s2 的速度吗?如果没有,我做下面这样的事情会不会有任何问题,基本上将我的字节数组存储为字符串?
string s1 = Convert.ToChar(1).ToString() + Convert.ToChar(2).ToString() + Convert.ToChar(3).ToString() + Convert.ToChar(4).ToString();
string s2 = Convert.ToChar(1).ToString() + Convert.ToChar(2).ToString() + Convert.ToChar(3).ToString() + Convert.ToChar(4).ToString();
if (s1 == s2)
.....
希望有人可以帮助我解决这个问题。谢谢!
【问题讨论】:
标签: .net arrays performance string comparison