32位和64位.net框架最大内存有什么区别?

时间:2011-01-31 12:30:47

标签: .net frameworks

最大内存32位和64位.net框架之间有区别吗?我的意思是:在64位.net框架上编写时,我可以分配超过2GB的内存吗?

64位.net框架的功能是什么?我无法在互联网上找到它。

3 个答案:

答案 0 :(得分:2)

this帖子看,它们似乎删除了最大2GB,您可以使用所有可用内存。

  

x64有以下优点:

     
      
  1. 没有2GB内存限制 - 您可以使用所有可用内存。
  2.   
  3. 更好的性能,特别是具有一定的双精度   数学。 x64有几个额外的   注册,可以做一些事情   更快(可能)。我见过一些   一些高度的显着提升   数字代码,但对于大多数业务   应用程序,你不会看到一个   差。
  4.         

    x64具有以下缺点:

         
        
    1. 不太理想的IDE支持
    2.   
    3. 程序占用更多内存(对象引用大小为2x)
    4.   

查看Migrating 32-bit Managed Code to 64-bit也可能会有所帮助。

答案 1 :(得分:1)

是的,你可以分配尽可能多的内存,因为系统允许在重量下压缩之前 - 但是,数组(包括大多数列表)和字符串等仍然限制在2GB。另请注意,由于引用的大小加倍,这意味着您只能在列表中包含 half 多个引用。但这仍然是很多的参考文献。

int等的大小不会改变,因为无论平台如何,它们都是固定的。

你可能还会看到其他奇怪的东西 - x64和x86在引擎中有一些不同的优化。所以请进行测试 - 不要只是将其更改为x64并盲目部署。这里的示例是tail call以及围绕复杂情况的各种事情,例如volatile

答案 2 :(得分:1)

根据我的经验,在实践中,该程序在64位系统上使用几乎两倍的内存。到目前为止没有其他问题。 (我的是一组~30个窗口服务,使用ORM处理一些数据 - 因此有许多对象引用)。​​