对于一些计算量很大(数字运算)应用程序,我已经看到它明显更快(在我的经验中约为4倍).最好的是它在纯托管案例中免费提供.你甚至不需要重新编译任何东西来获得好处.另外,我听说x64 JIT有更积极的优化.
最大的缺点可能是无法在进程中加载32位COM组件.
您的应用程序运行速度可能会更快 我看到一些应用程序的改进,但没有其他应用程序.这取决于您的应用程序利用64位(数学)运算的多少,如果这会抵消x64使用的较大数据和代码,因此必须先加载到指令和数据缓存中才能执行.
http://blogs.msdn.com/b/joshwil/archive/2006/07/18/670090.aspx
这值得一读.这是旧的(.NET 2.0),但仍然适用; 指针大小,COM互操作等:
值得一提的是,即使在x64上,CLR的单个对象大小限制为2Gb.对于99%的场景而言,这不是问题,但如果您转向x64,可能是因为您可能正在使用大型数据集.有关更多讨论,请参见此处
C#Strings(和其他.NET API)的大小限制为2GB吗?
所以.除非您的应用程序使用的数据不适合32位内存或大量使用64位操作,否则您可能看不到太多,如果有任何改进.
另一个缺点是Visual Studio for x64应用程序有一些限制:
"编辑并继续"不适用于64位调试.
在64位代码中,无法以混合模式调用,从本机代码调用托管代码,反之亦然.
请参阅:http://msdn.microsoft.com/en-us/library/ms184681(VS.80).aspx
注意:默认情况下不安装64位C++编译器.您必须在安装期间选择它们.
我也刚刚发现了这个(因为我自己正在优化x64应用程序).
"在AMD64的64位Windows上移植和优化应用程序......"
http://download.microsoft.com/download/5/b/5/5b5bec17-ea71-4653-9539-204a672f11cf/AMD64_PortApp.doc
在编译器开关等方面有很多好的指针.