C# 关于32位.exe与64位.exe

C# 关于32位.exe与64位.exe,c#,.net,performance,performance-testing,C#,.net,Performance,Performance Testing,32位或64位.exe的性能有差异吗?或者,您只是想在您想要的任何平台(32位处理器或64位处理器)上运行应用程序 我的意思是,我有一个控制台应用程序,它现在正在生成一个32位的.exe。 当它执行太多计算时,它的执行速度非常慢,这些计算会随着用户基数的增加而增加 如果我将其更改为64位.exe,从更高的层面来看,我是否会获得性能优势 我知道我必须优化代码以获得最佳性能。这并不是那么简单,两种处理器架构(32位和64位)之间存在一定的差异。 如今,64位系统正成为标准,因为它们具有各种固有的优势

32位或64位.exe的性能有差异吗?或者,您只是想在您想要的任何平台(32位处理器或64位处理器)上运行应用程序

我的意思是,我有一个控制台应用程序,它现在正在生成一个32位的.exe。 当它执行太多计算时,它的执行速度非常慢,这些计算会随着用户基数的增加而增加

如果我将其更改为64位.exe,从更高的层面来看,我是否会获得性能优势


我知道我必须优化代码以获得最佳性能。

这并不是那么简单,两种处理器架构(32位和64位)之间存在一定的差异。 如今,64位系统正成为标准,因为它们具有各种固有的优势,并且能够轻松地运行具有高内存需求的应用程序。用简单的话来比较:

  • 64位系统可以处理大量数据进行处理

  • 在64位系统上,每个进程可以有更高的内存分配(理论上,32位内存分配为
    2^32=4 GB,64位内存分配为2^64=16 EB
    )。实际上,一个进程受到实际RAM大小的限制,在32位中,默认用户内存为2GB,最大可扩展为3MB,剩余内存用于内核进程。即使是64 GB,也不是所有操作系统都能够为每个进程映射那么多内存,也不确定每个进程是否有任何用户版本达到TB

  • 64位系统具有更大的硬件优化范围

  • 64位系统可以同时运行多个应用程序,而不会导致内存不足问题

  • 甚至64位操作系统也是独立的,以充分利用处理器功能

  • 32位系统通常可以在64位系统上运行,在windows中使用像WOW(windows上的windows)这样的技术,但反之亦然是不可行的。然而,这种运行受到限制,它不能充分利用64位系统的所有优点。这些流程在任务管理器中很容易识别,因为它们包含一个
    *32
    以及名称

关于性能,没有经验法则,但正如您所理解的,如果一个进程由于内存不足而变慢,RAM中就没有足够的空间供进程执行,这会导致频繁地在进程内和进程外进行分页,从而在完全在内存中时使进程相对较慢,在64位系统上速度会快得多

查看以下链接,他们有很多相关和准确的信息:


如果要运行应用程序的服务器/台式机始终是64位的,则是。不是,那里没有圣诞老人。除此之外,你可以自己去发现一些琐碎的事情,只需移除抖动强制即可。右键单击您的EXE项目>属性>生成选项卡>平台目标,并选择32位复选框。请选中添加的更多详细信息,这可能有助于了解两个系统之间的性能比较