在Mac OS X上检测Ruby中的64位CPU

时间:2009-09-01 23:44:29

标签: ruby macos 64-bit

我希望区分Core Solo / Duo和Core 2 Duo处理器以获得64位支持。

在Core 2 Duo上,然后`sysctl hw.cpu64bit_capable`根据需要提供1,但在32位处理器上,它会抛出错误,说:

second level name cpu64bit_capable in hw.cpu64bit_capable is invalid

检测64位处理器的最佳方法是什么?

感谢。

1 个答案:

答案 0 :(得分:4)

您仍然可以通过查看命令的返回值来使用sysctl命令。

$ irb
>> system("sysctl hw.cpu64bit_capable > /dev/null 2>&1")
=> true

在32位CPU上,它应该返回false


或者,根据您真正需要的内容,您可以使用ioreg测试64位EFI,但我认为您的CPU仍然可以使用32位EFI进行64位。

在64位EFI机器上,你会得到这个:

$ irb
>> system("ioreg -l -p IODeviceTree | grep firmware-abi | grep -q EFI64")
=> true

在缺少64位EFI的计算机上,您将获得false