AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 7034
Accepted
squallbayu
squallbayu
Asked: 2010-10-14 19:39:21 +0800 CST2010-10-14 19:39:21 +0800 CST 2010-10-14 19:39:21 +0800 CST

32位和64位有什么区别,我应该选择哪个?

  • 772

32 位和 64 位 Ubuntu 有什么区别?我听说 64 位平台性能更好,可以检测超过 4GB 的 RAM。此外,虽然一些应用程序尚未移植到 64 位,但ia32-libs让 64 位机器运行它们。

如果是这样,为什么不提升 64 位而不是 32 位呢?

cpu-architecture
  • 17 17 个回答
  • 162461 Views

17 个回答

  • Voted
  1. Best Answer
    Sergey
    2011-10-22T23:59:47+08:002011-10-22T23:59:47+08:00

    我相信在 32 位和 64 位之间进行选择时的主要问题不是“我的处理器是否支持 64 位——如果支持,那么我应该使用 64 位,因为那是两倍好”,而是“我有多少内存?” .

    64 位程序使用的内存比 32 位程序多 50%。结果是:

    • 更少的代码/数据可以放入处理器缓存 -> 更多的缓存未命中 -> 您的超快处理器等待内存控制器从 RAM 获取数据的时间更长。处理器还需要读取更多数据,因为它更加臃肿。

    • Linux 使用未分配的 RAM 来缓存磁盘。可用内存减少 -> 磁盘缓存空间减少 -> 磁盘访问速度较慢

    • 一旦您的 RAM 用完并且系统开始交换 - 磁盘访问速度比 RAM 慢数千倍,因此 64 位代码(见下文)的任何潜在好处都飞出窗口。

    另一方面,在 64 位模式下,处理器有更多的寄存器,因此它不需要经常访问内存,而且某些计算(64 位数字等)效率更高。所以一般来说,不受内存限制的代码在 64 位模式下运行得稍微快一些。

    因此,如果您的系统具有 2GiB 或更少的 RAM,那么我肯定会选择 32 位。超过 4GiB——64 位的优势越来越突出。大约 4GiB 是一个“灰色地带”——您需要自己做出选择。

    以下是在具有 1GiB RAM 的 VirtualBox 中运行的(相当旧的)vanilla Ubuntu 的屏幕截图:

    32 位:启动后立即使用 388 MiB 的 RAM,没有运行其他应用程序(从屏幕截图中,397780KiB,即 388MiB)

    32 位 Ubuntu

    64 位:使用 491 MiB 的 RAM(从屏幕截图来看,503452KiB = 491MiB)

    64 位 Ubuntu

    此外,在我的测试中,用 Python 编写的 Web 应用程序在 64 位机器上使用了多达 60% 的内存,这导致测试套件在 32 位机器上运行时间为 380 秒,但在 64 位机器上运行时间为 523 秒。第一个位(都具有 1GiB 的 RAM)。如果机器不受 RAM 限制,结果可能会有所不同(如 phoronix 测试所示)。

    以下是一些更彻底和最近的测试: http: //kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods

    内存免费 使用的内存 使用的交换

    基本上,这就像放弃 30% 的 RAM 以换取可能获得10% 的 CPU 速度。

    • 151
  2. mario
    2010-10-15T00:30:49+08:002010-10-15T00:30:49+08:00

    如果您不想了解技术细节,请选择推荐的 32 位版本。

    64 位通常更快,即使客观上很难注意到。这与 64 位数据宽度关系不大,但与整个指令集上 16 个超过 8 个通用 CPU 寄存器的可用性有关。浪费更多内存用于管理和更大指针的缺点因此基本上被消除了。

    实际问题:不是每个人都有兼容 AMD64 的 CPU。在标准 i686 版本上推广 64 位会导致更多的用户挫败感。因此,在接下来的几年里,向普通用户展示 32 位版本会不会让人感到困惑。这对任何知情的人来说都不是问题,因为 64 位版本很容易获得。我们amd64用户在这种情况下没有任何劣势,除了初始下载。所有软件包都可用于两种架构。

    在这种情况下,Ubuntu 下载页面对我来说看起来不错。它说“32 位(推荐)”,但“推荐”意味着“如果您不了解计算机的所有技术细节,问题更少”。对于上网本版下载页面,甚至没有选择,因为一些Intel atom CPU在2010年也只有32位!
    所以总而言之,我认为避免兼容性问题仍然是必要的。但是,我同意至少应该有一个闪亮的脚注,即 -64 比 -32 快,并且建议如果(但仅当)目标系统支持它。

    • 22
  3. Mitch
    2012-06-28T21:45:05+08:002012-06-28T21:45:05+08:00

    术语 32 位和 64 位是指计算机 CPU 处理信息的方式。64 位版本比 32 位系统更有效地处理大量 RAM。1

    • 要运行 64 位操作系统,您需要 64 位 CPU 的支持。
      • 要运行 64 位应用程序,您需要 64 位操作系统和 64 位 CPU 的支持。

    一般规则是 32 位(操作系统和应用程序)将在 64 位上运行,但 64 位(操作系统和应用程序)不会在 32 位上运行:

    • 32 位操作系统可以在 32 位或 64 位处理器上运行而不会出现任何问题。
    • 32 位应用程序将在 32 位或 64 位操作系统上运行而不会出现任何问题。
    • 但是 64 位应用程序只能在 64 位操作系统上运行,而 64 位操作系统只能在 64 位处理器上运行。

    安装 64 位操作系统需要 64 位兼容 CPU。请咨询您的 PC 制造商,了解您的系统是否兼容 64 位。

    32 位系统的 RAM 内存限制为 4 GB,这意味着即使系统上安装了更多 RAM,它们也无法寻址超过 4 GB 的 RAM(不会全部使用)。解决方法是可用的,但对于普通用户来说很难做到。

    注意: Ubuntu 12.10 和更新版本将自动支持 PAE。在 12.10 之前,您可以根据 CPU 选择 PAE 支持。PAE 将 32 位的最大 RAM 扩展到 64GB,可以在此处找到更多信息。

    64 位版本具有其他优势,包括增加的带宽、支持硬件的 DEP(数据执行保护)和更好的内核保护。

    大多数 32 位应用程序将继续在 64 位系统上运行,但有些应用程序根本无法运行,或者运行速度较慢。

    有关更多信息,您可以查看32 位和 64 位

    1来源:微软

    • 18
  4. desgua
    2012-04-23T16:03:20+08:002012-04-23T16:03:20+08:00

    正如Phoronix中所指出的:“随着 Ubuntu 多架构问题的清理,大多数应用程序和插件现在可以在 64 位(例如 Adob​​e Flash 和 Java)上正常运行,并且 64 位通常比 32 位快得多-bit,确实没有什么大的理由不迁移到 x86_64 版本。”

    尽管讨论了是否将 64 位而不是 32 位指示为默认值,但我认为您对第一个有一些性能提升。请参阅这些基准。

    以及来自Phoronix的“低”RAM 内存的一句话:“[S]一些 Ubuntu 开发人员一直过度担心 32 位上网本仍然存在,并且对于只有 2GB 内存的系统,使用 x86_64 软件可能会导致运行“内存不足,因此增加了 SWAP 的使用。但是,对于绝大多数用户来说,他们在 64 位世界中的情况要好得多。”

    也许您可以安装它并观察系统是否经常使用交换。

    • 10
  5. coro
    2014-05-04T21:37:35+08:002014-05-04T21:37:35+08:00

    对我来说,最重要的是您不能在 32 位操作系统上使用 ZFS 文件系统,因为由于 32 位操作系统的 vmalloc 限制(无论 PAE 或非 PAE),它在那里根本不稳定。那是我重新安装到 64 位的原因,我再也没有回头。甚至 NVIDIA 在“故障排除”页面中也几乎没有关于 vmalloc 的内容,最后鼓励用户切换到 64 位内核。

    32位模式下有1GB的寻址限制,所以即使能用到4GB,也只有1GB是所谓的“低”,剩下的就是“高内存”,不是那么笼统。现在,1GB 真的很小。尝试#free -l

    • 3
  6. Colin Ian King
    2012-07-28T09:55:12+08:002012-07-28T09:55:12+08:00

    不久前,我为 Ubuntu Precise LTS 研究了这一点。以下是我运行的一些分析的一些结果:

    http://kernel.ubuntu.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/low-memory-systems/readme.txt

    http://kernel.ubuntu.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/hpmini-and-x220-tests/results-3/results.txt

    基本上,如果你有 4GB 或更少就可以了,超过 4GB 考虑使用 i386-pae 或 amd64。64 位系统消耗更多内存(例如,指针大小为 64 位),但由于使用 64 位副本或使用 64 位模式下可用的额外 CPU 寄存器的优化,您可能会在 64 位系统上看到性能提升。

    • 3
  7. Jeremy
    2010-10-14T19:54:48+08:002010-10-14T19:54:48+08:00

    正如之前的海报所说,64 位与 32 位是指计算机可以在一次操作中移动的数据大小。这与 CPU 上寄存器的大小和总线的宽度有关(寄存器只是保存供 CPU 操作的数据,它们过去在消费类硬件中很小,并且自家庭计算问世以来一直在增长。总线将主板的不同部分连接在一起,它们是数据流动的高速公路)。

    问题是大多数操作系统在迁移到 64 位操作时都存在一些实际问题,对驱动程序和应用程序的支持很差。通常,应用程序在早期版本中的性能实际上更差。鉴于大多数人没有真正的理由跳入深渊,Linux 的力量似乎比其他操作系统慢一点,缓慢但稳定。

    • 2
  8. user241367
    2014-01-30T06:44:16+08:002014-01-30T06:44:16+08:00

    如果你需要的话,基本上我会说使用 64 位版本。

    如果您主要浏览网页、看 youtube、在 facebook 上闲逛、看电影等,那么 32 位更好,因为您不需要任何好的硬件来做这些事情。

    如果您在 Steam、WINE 等上玩游戏、运行大量程序、进行一些媒体编辑等,那么 64 位是最佳选择。

    所以随便使用然后32位操作系统,高级使用然后64位版本。

    • 2
  9. swift
    2012-04-23T16:37:29+08:002012-04-23T16:37:29+08:00

    为了获得简单的用户体验,官方 Ubuntu 网站建议使用 32 位版本,因为调整更灵活。
    我这里的计数也意味着数据的一致性。

    任何赞成和反对都存在很多点。我的观点是英特尔架构 64 位处理器上的 64 位操作系统的出色性能与使用 64 位软件和驱动程序直接相关,这可以让您有机会超越常规的 32 位性能。

    请注意,在 64 位操作系统上使用 32 位软件有时会导致性能不佳,甚至在不同的情况下会过热。

    但是,通过您签名的组件和此参考:
    英特尔® 扩展内存 64 技术:64 位桌面计算
    ...... 4Gb+内存可能带来更好的体验。

    我认为这对您来说将是好的且不是非常昂贵的解决方案。

    是的,并行使用这两个系统能够让您更清楚地了解您的配置和含义的多功能性。

    • 2
  10. lovinglinux
    2010-10-14T19:48:38+08:002010-10-14T19:48:38+08:00

    老实说,除了编译程序和编码视频所需的时间略有减少之外,我没有发现任何区别。除此之外,我的感觉是一样的。我注意到,在性能方面真正产生影响的是视频驱动程序。我猜 32 位视频驱动程序得到了更好的支持。我最近在 32 位系统上安装了最新的 nVidia 260 驱动程序,它产生了很大的不同。我目前正在使用 32 位。

    • 1

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve