【问题标题】:.net console app 32 vs 64 bit.net 控制台应用程序 32 与 64 位
【发布时间】:2010-11-07 12:04:35
【问题描述】:

.NET 中的应用程序是否需要以 64 位构建才能充分利用具有 64 位操作系统的机器,或者它是否会像 32 位构建一样利用它。基本上,我们遇到了内存不足异常的问题,建议在 64 位机器上运行控制台应用程序,这“可能”解决了这个问题。问题是我们可以直接启动一个 64 位框并将当前应用程序放在上面,还是我需要以 64 位方式重建应用程序。

【问题讨论】:

    标签: c# .net build 64-bit 32-bit


    【解决方案1】:

    “任何 CPU”是你的朋友。

    顺便说一句:

    我们有一个特别大的Trie 结构,超过了 32 位 Windows 的 2GB 内存空间。由于大部分结构由对象引用组成,我们发现应用程序的内存需求在迁移到 64 位时几乎翻了一番,大约需要 4GB。这是因为存储引用的内存是 64 位宽而不是 32 位。

    【讨论】:

      【解决方案2】:

      如果它是为任何平台构建的(默认),它将在 64 位操作系统上以 64 位运行。

      话虽如此,仍有潜在的问题需要注意。如果您与本机代码交互(通过 p/invoke、C++/CLI 或 COM),则需要将该代码移植到 64 位。如果应用程序是 100% 托管的,它就可以正常工作。

      【讨论】:

        【解决方案3】:

        如果您的应用配置为针对“Any CPU”平台构建,那么它可以在任一平台上正常运行。

        只要确保它不使用任何 32/64 位特定的东西,否则你会遇到问题。

        MSDN 文档here.

        有关缺点的一些讨论,请参阅here

        【讨论】:

        猜你喜欢
        • 2023-03-03
        • 2010-12-11
        • 1970-01-01
        • 1970-01-01
        • 2011-10-27
        • 2012-01-19
        • 1970-01-01
        • 2011-03-03
        相关资源
        最近更新 更多