64位.NET的优点/缺点是什么?

问题描述 投票:12回答:3

this question/comments中所述,当从32位.NET迁移到64位.NET时,存在某些缺点。

最大的优势可能是在64位环境中更大的进程地址空间,但是还有哪些其他优缺点值得注意?

.net 64-bit 32-bit
3个回答
6
投票

我已经看到,对于某些计算量大(数字运算)的应用程序,它的运行速度显着提高(根据我的经验,约为4倍)。最好的事情是,在纯托管案例中它是免费提供的。您甚至不必重新编译任何内容即可获得好处。另外,我听说x64 JIT具有更积极的优化。

最大的缺点可能是无法在进程中加载​​32位COM组件。


5
投票

您的应用程序可能会或可能不会运行得更快。我看到某些应用程序有所改进,但其他应用程序却没有。这取决于您的应用程序利用64位(数学)运算的优势,以及这是否抵消了x64使用的较大数据和代码,因此必须先加载到指令和数据高速缓存中,然后才能执行。

http://blogs.msdn.com/b/joshwil/archive/2006/07/18/670090.aspx

这值得一读。它很旧(.NET 2.0),但仍然适用。指针大小,COM互操作等:

Migrating 32-bit Managed Code to 64-bit

值得一提的是,即使在x64上,CLR的单个对象大小限制也为2Gb。对于99%的方案来说,这不是问题,但是如果您要迁移到x64,大概是因为您可能正在使用大型数据集。请参阅此处进行更多讨论:

Are C# Strings (and other .NET API's) limited to 2GB in size?

所以除非您的应用程序使用不适合32位内存的数据或大量使用64位操作,否则如果有任何改进,您可能看不到多少。

另一个缺点是Visual Studio for x64应用程序有一些限制:

  • 编辑并继续无法使用用于64位调试。

  • 您无法在混合模式下调试从本机代码到托管代码,或反之亦然,采用64位代码。

参见:http://msdn.microsoft.com/en-us/library/ms184681(VS.80).aspx

注意:默认情况下未安装64位C ++编译器。您必须在安装过程中选择它们。

我也刚刚发现了这个(因为我自己正在优化x64应用程序。)>

“在64位Windows上为AMD64移植和优化应用程序...”

http://download.microsoft.com/download/5/b/5/5b5bec17-ea71-4653-9539-204a672f11cf/AMD64_PortApp.doc

在编译器开关等上有很多好的指针。


1
投票

64位应用程序的运行速度不会总是快于32位。下面的两个博客文章对此进行了讨论:https://blogs.msdn.microsoft.com/rmbyers/2009/06/09/anycpu-exes-are-usually-more-trouble-than-theyre-worth/

© www.soinside.com 2019 - 2024. All rights reserved.