机器大小 64 或 32 位
Posted
技术标签:
【中文标题】机器大小 64 或 32 位【英文标题】:size of machine 64 or 32 bit 【发布时间】:2011-02-05 18:57:42 【问题描述】:如果我在 Unix 机器上工作,我怎么知道机器的大小是 64 位还是 32 位机器?
【问题讨论】:
检查指针的大小(如果您的语言可用)。更具体。 【参考方案1】:AIX 你可以这样做:
getconf KERNEL_BITMODE
HP-UX 你可以这样做:
getconf KERNEL_BITS
或者只是:
getconf -a | grep KERN
Sun Solaris 你可以这样做:
isainfo -v
对于 Linux,是的,uname -a
应该可以解决问题
【讨论】:
因为我正在处理 hp...getconf -a 不工作...但 getconf KERNEL_BITS 工作正常。 安卓 ? :D ...我设法安装LinuxOnandroid(根设备)和getconf -a | grep KERN 什么也不返回 :( 还有 uname -m,或者 arch 返回 armv71 这些命令只显示安装的内核位大小模式。对于可能的 CPU 模式,请查看lscpu
或 another question's answer。【参考方案2】:
你可以输入
uname -m
如果出现 i686 或 i386,您使用的是 32 位 如果出现 X86_64,则说明您使用的是 64 位
【讨论】:
【参考方案3】:我必须处理很多 Unix 平台,通常我发现的最好方法是查看“uname -a”的输出。例如,如果您在输出中看到类似“i686 i686 i386 GNU/Linux”的内容,您就知道这是一台 32 位机器。如果“amd64”显示它是 64。有时这是尝试运行 64 位程序的问题。有时是 RTFM。
【讨论】:
【参考方案4】:如果您只是想检查您所在机器的架构,
%> uname -a
从命令行的输出中通常包含一个指示。
【讨论】:
【参考方案5】:你也可以试试sizeof(int *)
。在 32 位机器上应该是 4,在 64 位机器上应该是 8。
【讨论】:
我没有理由不能在 64 位计算机上定位 32 位可执行文件。在我工作的地方,我们没有费心将一些应用程序更改为 64 位(尽管有些应用程序占用了千兆字节的内存,并且需要在 64 位机器上运行)。【参考方案6】:假设您想在编译时执行此操作 - 请查看 here 以了解您可以测试的架构宏。您可能正在寻找__x86_64__
。
【讨论】:
以上是关于机器大小 64 或 32 位的主要内容,如果未能解决你的问题,请参考以下文章
32 位和 64 位 Windows 服务器上 JVM 的最大堆大小