【问题标题】:How to be sure if a processor is 32bits or 64bits ? Are dual core processors 32 or 64 bits?如何确定处理器是 32 位还是 64 位?双核处理器是 32 位还是 64 位?
【发布时间】:2011-04-19 09:05:31
【问题描述】:

感谢 bootcamp,我有一个安装了 windows 的 Macbook Pro,我有几个问题:

  • 在 windows 下,我看到进程只使用最多 50% 的 CPU 费用,是因为处理器是双核并且因为进程不是多线程的吗?我应该安装 windows xp 64 位版本以获得更好的性能吗?

  • 所有双核处理器都是 64 位的吗?如何使用 C 或 C++ 检查它以确保本机是 64 位而不是 32 位?我尝试打印:

    sizeof(void*);

它说 8,所以它意味着 64 位,但我不确定......

  • 双核是否明确表示如果它有 2 个 32 位内核,处理器本身支持 64 位指令?这是 x86_64 架构吗?

  • 因为原版游戏有 128 位指令,所以模拟 PS2 游戏很微妙吗?

  • 为什么long double 128 bits while

    sizeof(long long); sizeof(long);

两者都输出相同的东西?

【问题讨论】:

  • 为什么不去查看cpu供应商页面呢? intel.com/products/processor/core2duo/index.htm
  • 在 64 位 CPU 中,所有内核都是 64 位。在 32 位 CPU 中,所有内核都是 32 位的。这些位不会以任何方式在内核之间“划分”。
  • 那么拥有 2 个核心有什么意义呢?

标签: c++ process 32bit-64bit x86-64 processor


【解决方案1】:
  • 是 50% 是单个线程的最大使用量。没有 64 位不会改变任何东西。
  • 所有 Core 2 和 Core i* 处理器都是 64 位的。所有的原子都是 32 位的。您的 sizeof 是正确的,但如果您在 64 位系统上编译为 32 位应用程序将无济于事。
  • 2x 32 位不等于 64 位。 64 位处理器有 64 位内核,32 位处理器有 32 位内核。
  • 它使仿真变慢,但困难来自于 PS2 架构的复杂性,以及与 PC 的差异。此外,它可能没有很好的公开记录,因此很难找到具体细节。
  • 询问规格。某些类型的大小取决于平台,这意味着 int 可能是 64 位或 32 位,甚至是 16 位。

【讨论】:

  • 我怎么知道我是在 32 位还是 64 位编译?例如对于 g++,默认是 32 还是 64?除了多线程,顺便说一句,拥有 2 个核心有什么意义?它是否提供更好的性能,例如双通道?
  • 多线程是拥有 2 个核心的关键。毕竟,当使用多线程时,与单核(具有相同的架构和频率)相比,(理论上)性能可以提高一倍。考虑到在典型系统上工作的线程数量,即使不是显式多线程的软件也可能会看到一些改进(尽管没有那么多)。
【解决方案2】:

如果通用二进制文件具有 64 位代码,则使用 Mac OS Snow Leopard 以 64 位运行应用程序,否则将加载 32 位代码。您还可以决定是否希望 Snow Leopard 在启动时加载完整的操作系统并填充“64 位内核和扩展”。我的 MBP 设置为 64 位启动。
Which MacBookPro can boot into 64-bit

现在,针对 Windows on Boot Camp。无论您安装的 Windows 版本是什么,都将表明它是 32 位还是 64 位。因此,除非您安装 64 位版本的 Windows,否则您将无法获得 64 位。然而,Snow Leopard 内置了 32 位和 64 位。例如,您不能将 Windows XP 32 位升级到 Windows XP 64 位。您必须从头开始安装。

【讨论】:

  • 是的,我知道我必须从头开始安装它,但这是否意味着使用 windows xp“经典”会在玩游戏时获得“更少的性能”?我真的不知道-_-
猜你喜欢
  • 2015-12-03
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 2011-01-24
  • 1970-01-01
相关资源
最近更新 更多