最大内存32位和64位.net框架之间有区别吗?我的意思是:在64位.net框架上编写时,我可以分配超过2GB的内存吗?
64位.net框架的功能是什么?我无法在互联网上找到它。
答案 0 :(得分:2)
从this帖子看,它们似乎删除了最大2GB,您可以使用所有可用内存。
x64有以下优点:
- 没有2GB内存限制 - 您可以使用所有可用内存。
- 更好的性能,特别是具有一定的双精度 数学。 x64有几个额外的 注册,可以做一些事情 更快(可能)。我见过一些 一些高度的显着提升 数字代码,但对于大多数业务 应用程序,你不会看到一个 差。
醇>x64具有以下缺点:
- 不太理想的IDE支持
- 程序占用更多内存(对象引用大小为2x)
醇>
查看Migrating 32-bit Managed Code to 64-bit也可能会有所帮助。
答案 1 :(得分:1)
是的,你可以分配尽可能多的内存,因为系统允许在重量下压缩之前 - 但是,数组(包括大多数列表)和字符串等仍然限制在2GB。另请注意,由于引用的大小加倍,这意味着您只能在列表中包含 half 多个引用。但这仍然是很多的参考文献。
int
等的大小不会改变,因为无论平台如何,它们都是固定的。
你可能还会看到其他奇怪的东西 - x64和x86在引擎中有一些不同的优化。所以请进行测试 - 不要只是将其更改为x64并盲目部署。这里的示例是tail call以及围绕复杂情况的各种事情,例如volatile
。
答案 2 :(得分:1)
根据我的经验,在实践中,该程序在64位系统上使用几乎两倍的内存。到目前为止没有其他问题。 (我的是一组~30个窗口服务,使用ORM处理一些数据 - 因此有许多对象引用)。