对于ASP.Net应用程序,64位超过32位的主要好处是什么?

除了64位内存分配的优点(> 4 GB – 请参阅StackOverflow上的这个问题 ,为什么32位+4 GB的解决scheme不适合我),还有什么其他的原因,我build议我们应该主办一个ASP .NET网站在64位Windows Server 2008上,而不是32位版本?

如果只有更大的可寻址内存(> 4 GB)的问题,我们还是有一个负载平衡的解决scheme,所以我们可以通过添加一个新的(虚拟)盒子来进行扩展。

CPU也不会跑得太热,所以任何边际速度的提升都是不合理的。

我自己的直觉是,如果可以的话,我们应该在64位主机上,纯粹是因为它更容易扩展(通过在需要时插入更多的RAM)。 但是呢?

所有意见和想法都欢迎!

    我认为你应该真正问的问题是为什么不去x64? 如果你的硬件支持,你的应用程序工作,坚持32位的理由是什么? 几乎没有任何成本差异,以及未来所有软件将要运行的方式,例如Exchange 2007只有64位,我相信很多新的软件都会这样。

    如果你不能拿出一个令人信服的理由坚持32位,那么我会去64。

    • x86_64 cpus的页表中有没有执行位 。 即,这可以防止缓冲区溢出引起的安全漏洞。 32位x86 cpus在PAE模式下仅支持此function。
    • 你只能使用签名的Windows驱动程序 。 恕我直言,这是一个优势,因为你不能打破你的系统,一个破碎的,未经testing的驱动程序。 请记住,大多数Windows问题是由驱动程序损坏引起的。

    说实话:在我看来,64位应该是多年来的默认! 我无法相信Windows社区需要多长时间才能完成切换。 我不明白为什么微软甚至不屑于发布一个32位的Vista(现在甚至是Windows 7)。 即使苹果公司决定从PowerPC切换到32位x86,尽pipe当时大多数cpus已经能够支持64位。 这对我来说毫无意义。 如果一切都是64位而只有64位的话,一切都会容易得多。

    有很多“原因”,但首先是所有的微软产品都是64位的。 它有一定的“未来发展”的devise,给你的ASP.NET应用程序带来更多的失败空间(例如,来自OOM错误)。

    这不是ASP.NET相关的,但我会添加为了完整性。 某些Microsoft Server产品(如Exchange Server 2007 )仅在64位Windows平台上运行。 我想你可以称这是一个好处。

    我不认为两者之间有巨大的成本差异,为什么不直接部署新的服务器与Windows Server 2008 64位? 利用其更大内存容量的能力是最好的(也是我所知道的)使用它的理由。 现在内存如此便宜,4 GB对于新的服务器来说似乎很less!

    在最近的这个在64位计算上的RunAs Radio播客中 ,这个问题大概有10个很好的答案。

    有一件事是总线宽度加倍,因此可以更快地读/写数据。 性能提升对于32位家庭使用来说可能是轻微的,但对于服务器来说当然是值得的。

    有一个类似于Y2K的模糊(但真正的)错误,影响大多数32位机器。 这是由于在一些Windows程序中使用的unix时代 ,在2038年有一个最大值的时间,在这一点上将围绕到1901年!

    参见维基百科“ 2038年问题

    与此问题有关,因为它影响使用标准机器大小的variables来存储unix时期的32位机器。 这将通过升级到64位来解决。