【问题标题】:32bit vs 64bit performance32 位与 64 位性能
【发布时间】:2010-11-27 02:03:15
【问题描述】:

我有一个 .NET 程序集(3.5 框架),它基本上有一组自定义控件,可以做很多事情,比如绘图点和类似的东西。该程序集被编译为“AnyCPU”,因此我可以在 32 位和 64 位中使用它。当我尝试比较在 32 位和 64 位中使用此程序集的应用程序的性能时,我看到了有趣的结果。应用程序性能有两部分:一是后端,它进行大量计算和数据复制。另一个是控件上的实际绘图部分。根据结果​​,似乎第 1 部分在 32 位架构中更快,而第 2 部分在 64 位架构中更快。谁能解释这种行为? 64位的数据计算和复制部分比较慢,是因为64位的浮点运算比32位慢吗?

PS:我在具有 8GB 内存的 64 位 AMD 机器上对应用程序进行了基准测试,上面安装了 32 位和 64 位 Vista。

【问题讨论】:

    标签: .net-3.5 64-bit performance


    【解决方案1】:

    如果您的计算部分有很多对象引用,每个引用将占用 64 位 CLR 中两倍的空间,从而导致内存使用量增加,从而导致垃圾收集。这是我能想到的主要区别,但它们也有不同的 JIT - 可能是您的应用程序的计算部分碰巧命中了 32 位版本更好的 JIT 位。

    【讨论】:

      猜你喜欢
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 2010-12-12
      • 2013-06-21
      • 1970-01-01
      相关资源
      最近更新 更多