2

我脑海中的小过早优化错误告诉我,我应该将现有的 x86 C# 应用程序移植到 x64,因为它依赖的非托管 DLL 的 x64 版本。我知道答案可能是这样做,测试并看看会发生什么,但我想看看通常期望的好处是什么。我发现两到四年前有很多帖子抱怨 x64 CLR 速度比 x86 CLR 慢。

哪些领域可以期望使用 x64 代码加速?是否值得移植,除非您需要超过 2 GB 的内存?我的代码主要面向网络,处理中等大小的字节数组和加密算法。

4

1 回答 1

1

这个问题最简单的答案是分析 32 位和 64 位并比较它们。但是,由于您说您正在使用加密算法,如果您经常使用它们,我强烈建议您考虑使用 64 位。

加密算法通常对大于 32 位的值执行整数算术和/或逻辑运算,这在 64 位代码中要快得多。此外,它们通常可以比普通代码更多地利用处理器的扩展寄存器集(尽管某些超标量/缓存优化可能已经在一定程度上做到了这一点)。

最后,除了在您的特定情况下测试它之外,没有办法判断哪个会表现得更好,但是如果您使用的任何密码库都有 64 位版本,我相信值得一试。

于 2013-02-10T08:49:23.350 回答