【发布时间】:2010-12-23 22:57:18
【问题描述】:
我使用 Ants 分析了我的应用程序,发现 > 10% 是在 CRC32 计算中。 (CRC32 计算是用纯 C# 完成的)
我做了一些谷歌搜索并了解了 Visual Studio 2008 中的以下内在函数:
_mm_crc32_u8
_mm_crc32_u16
_mm_crc32_u32
_mm_crc32_u64
(http://msdn.microsoft.com/en-us/library/bb514036.aspx)
谁能告诉我/告诉我如何使用这些来替换我的自制 CRC32?
【问题讨论】:
-
请注意,这些是 C++ 内在函数,而不是 C#。
-
请注意,x86 CRC 指令使用 CRC32C 多项式(例如 iSCSI 和某些文件系统)而不是经典 CRC32(以太网、gzip、bzip2 等)en.wikipedia.org/wiki/…。 CRC32C 可能是任何新用例的最佳选择,因为它往往具有更好的 CPU 加速支持。
标签: c# performance crc32 intrinsics